python bridge 버그

게시판 IDL Q&A python bridge 버그

8 답변 글타래를 보이고 있습니다
  • 글쓴이
    • #2755 Reply
      tlseorb0111
      회원

      안녕하세요
      IDL 8.5.1 버전을 ubuntu 12와 14 버전에서 사용 중 입니다.

      IDL 8.5 버전부터 추가된 python bridge를 매우 유용하게 사용하고 있습니다.

      하지만 python bridge를 사용한 후 NetCDF 파일을 open하면

      Segmentation fault (core dumped) 에러가 나면서 IDL이 꺼지는 현상이 발생합니다.

      예를들어
      아래 링크된 파일을 다운 받은 후 (어떤 ~.nc 파일이나 상관 없습니다.)
      ftp://satdat.ngdc.noaa.gov/sem/goes/data/new_avg/2015/11/goes15/netcdf/g15_epead_cpflux_5m_20151101_20151130.nc

      python.a = 10
      file = ‘g15_epead_cpflux_5m_20151101_20151130.nc’
      id = ncdf_open(file)
      을 실행하면 튕깁니다. ubuntu 12, 14 버전 모두 마찬가지 입니다.
      하지만 centos 6.7에서는 튕기지 않고 제대로 실행이 되네요….

      python.a = 10 을 실행하지 않고 바로 ncdf_open 을 사용하면 문제가 없는데요..

      현재 anaconda 패키지를 통해 python을 사용하고 있습니다.

      따로 설정을 통해 해결이 가능한 것인지, 아니면 버그라고 생각해야하는 것인지 궁금하네요 해결 방법이 있을까요?

    • #2756 Reply
      tlseorb0111
      회원

      Ubuntu 14, 12 에서
      python bridge를 실행하기 전에 dlm_load, ‘ncdf’를 실행해주면 정상적으로 ncdf_open 이 작동합니다.

      ncdf_open 이 후 .full_reset을 할 경우 또 튕깁니다. .reset 은 안 튕기네요.

      문제가 뭘까요…

    • #2760 Reply
      Sangwoo
      회원

      일단 IDL과 Python 간의 브릿지 기능 자체는 정상적으로 작동중인 것으로 보이고, 다만 특별한 조건하에만 발생하는 문제같은데 정확한 원인을 파악하기는 사실 어렵습니다. IDL-Python 브릿지 기능이 아무래도 가장 최근 버전인 8.5에서부터 지원되기 시작했기 때문에 아직은 숨어있는 문제들이 존재할 수도 있습니다. 더구나 OS별로 상황이 다 다르기 때문에 당분간은 지속적인 보완이 필요한 기능이라는 생각이 듭니다. 아직 OS별 테스트 사례들이 많지 않은 상황이기도 합니다. 저도 윈도우즈 OS에서밖에 테스트해본 적이 없고, 다른 OS에서의 사용 사례는 제가 아는 범위하에서는 질문주신 분이 처음이거든요. 본사인 Harris의 포럼에서도 주로 윈도우즈 OS에서의 구동과 관련된 문의들이 주로 많은 상황입니다.

      언급해주신 문제에 대해서는 저도 Harris 기술팀에 리포트를 해볼 생각입니다. 다만 뾰족한 해결책이 오기를 기대하기는 쉽지 않을 것 같습니다. 어쨌든 이를 위하여 추가적으로 확인이 필요한 정보들이 있으므로 댓글로 알려주시면 감사하겠습니다.

      1) Ubuntu의 정확한 버전 번호 (12.x.x 및 14.x.x)
      2) 설치된 아나콘다 패키지의 버전 및 Python의 버전 번호
      3) 언급된 현상이 IDLDE 인터페이스의 나타나는 문제인지 아니면 터미널 모드 IDL에서 나타나는 문제인지 여부
      4) 언급된 현상의 발생의 일관성 (위와 같은 조건하에서는 항상 예외없이 동일한 문제가 발생하는지 여부)

      그리고 혹시나 위의 내용에서 python.a = 10이라는 줄을 ncdf_open이 사용된 줄 뒤에 넣으면 어떨까요? 이 경우에도 동일한 현상이 나타나는가도 궁금합니다.

    • #2786 Reply
      tlseorb0111
      회원

      Ubuntu 는 Ubuntu 14.04.4와 12.04.5 입니다.
      Python, Anaconda 버전은 Python 2.7.11 :: Anaconda 4.0.0 (64-bit)
      IDLDE, 터미널 모두 나타납니다.
      많은 경우를 해본 것이 아니라 자세히는 모르지만
      idl 내에서 python bridge를 사용후 ncdf_open() 함수를 사용하면 모두
      Segmentation fault (core dumped) 가 나타납니다.

      ncdf_open() 을 사용 후 python bridge를 사용하면 문제 없이 됩니다.
      ncdf_open()->python bridge-> ncdf_open() 도 문제 없이 발생하구요.
      python bridge -> ncdf_open() 의 경우만 에러가 발생하는 것 같습니다.

    • #2790 Reply
      Sangwoo
      회원

      본사 기술팀에 문의해서 답을 받았는데요. 기술팀에서는 동일한 OS에서 두가지 상황에 대한 시도가 모두 별 문제 없이 진행이 되었다고 합니다. 다만 이 테스트에서는 Anaconda 2.3.0 버전을 사용하였다고 하네요. 이 문제가 Anaconda 버전에 따른 문제인지는 아직은 확실하지는 않습니다. 우선은 좀 수고스러우시겠지만, 사용중이신 리눅스 터미널에서 printenv라는 명령을 입력했을 때 출력되는 내용을 알려주셨으면 합니다.

    • #2791 Reply
      tlseorb0111
      회원

      답변 감사드립니다
      아래 내용은 터미널에서 printenv를 사용했을때 나오는 것을 붙여넣기 한 것입니다.

      CLHEP_LIB_DIR=/home/daekyu/Documents/clhep/lib
      G4LEVELGAMMADATA=/home/daekyu/Documents/geant4/share/Geant4-9.6.4/data/PhotonEvaporation2.3
      MKLROOT=/opt/intel/compilers_and_libraries_2016.1.150/linux/mkl
      XDG_VTNR=7
      MANPATH=/opt/intel/man/common:/opt/intel/compilers_and_libraries_2016.1.150/linux/mpi/man:/opt/intel/compilers_and_libraries_2016.1.150/linux/man/en_US:/opt/intel/documentation_2016/en/debugger//gdb-ia/man/:/opt/intel/documentation_2016/en/debugger//gdb-mic/man/:/opt/intel/documentation_2016/en/debugger//gdb-igfx/man/:/opt/intel/man/common:/opt/intel/compilers_and_libraries_2016.1.150/linux/mpi/man:/opt/intel/compilers_and_libraries_2016.1.150/linux/man/en_US:/opt/intel/documentation_2016/en/debugger//gdb-ia/man/:/opt/intel/documentation_2016/en/debugger//gdb-mic/man/:/opt/intel/documentation_2016/en/debugger//gdb-igfx/man/:/home/daekyu/anaconda2/share/man:/usr/local/man:/usr/local/share/man:/usr/share/man:
      XDG_SESSION_ID=c2
      CLUTTER_IM_MODULE=xim
      SELINUX_INIT=YES
      XDG_GREETER_DATA_DIR=/var/lib/lightdm-data/daekyu
      SESSION=ubuntu
      G4ROOT=/home/daekyu/Documents/geant4
      INTEL_LICENSE_FILE=/opt/intel/compilers_and_libraries_2016.1.150/linux/licenses:/opt/intel/licenses:/home/daekyu/intel/licenses:/opt/intel/compilers_and_libraries_2016.1.150/linux/licenses:/opt/intel/licenses:/home/daekyu/intel/licenses
      IPPROOT=/opt/intel/compilers_and_libraries_2016.1.150/linux/ipp
      GPG_AGENT_INFO=/run/user/1000/keyring-rfh3zQ/gpg:0:1
      G4INSTALL=/home/daekyu/Documents/geant4/share/Geant4-9.6.4/geant4make
      TERM=xterm
      SHELL=/bin/bash
      XDG_MENU_PREFIX=gnome-
      VTE_VERSION=3409
      GDBSERVER_MIC=/opt/intel/debugger_2016/gdb/targets/mic/bin/gdbserver
      LIBRARY_PATH=/opt/intel/compilers_and_libraries_2016.1.150/linux/ipp/lib/intel64:/opt/intel/compilers_and_libraries_2016.1.150/linux/compiler/lib/intel64:/opt/intel/compilers_and_libraries_2016.1.150/linux/mkl/lib/intel64:/opt/intel/compilers_and_libraries_2016.1.150/linux/tbb/lib/intel64/gcc4.4:/opt/intel/compilers_and_libraries_2016.1.150/linux/daal/lib/intel64_lin:/opt/intel/compilers_and_libraries_2016.1.150/linux/daal/../compiler/lib/intel64_lin:/opt/intel/compilers_and_libraries_2016.1.150/linux/ipp/lib/intel64:/opt/intel/compilers_and_libraries_2016.1.150/linux/compiler/lib/intel64:/opt/intel/compilers_and_libraries_2016.1.150/linux/mkl/lib/intel64:/opt/intel/compilers_and_libraries_2016.1.150/linux/tbb/lib/intel64/gcc4.4:/opt/intel/compilers_and_libraries_2016.1.150/linux/daal/lib/intel64_lin:/opt/intel/compilers_and_libraries_2016.1.150/linux/daal/../tbb/lib/intel64_lin/gcc4.4:/opt/intel/compilers_and_libraries_2016.1.150/linux/daal/../compiler/lib/intel64_lin
      QTHOME=/home/daekyu/anaconda2
      G4INCLUDE=/home/daekyu/Documents/geant4/include/Geant4
      CDF_BASE=/usr/local/cdf
      WINDOWID=18874379
      UPSTART_SESSION=unix:abstract=/com/ubuntu/upstart-session/1000/1980
      GNOME_KEYRING_CONTROL=/run/user/1000/keyring-rfh3zQ
      G4NEUTRONXSDATA=/home/daekyu/Documents/geant4/share/Geant4-9.6.4/data/G4NEUTRONXS1.2
      MIC_LD_LIBRARY_PATH=/opt/intel/compilers_and_libraries_2016.1.150/linux/compiler/lib/mic:/opt/intel/compilers_and_libraries_2016.1.150/linux/mpi/mic/lib:/opt/intel/compilers_and_libraries_2016.1.150/linux/compiler/lib/mic:/opt/intel/compilers_and_libraries_2016.1.150/linux/mkl/lib/mic:/opt/intel/compilers_and_libraries_2016.1.150/linux/tbb/lib/mic:/opt/intel/compilers_and_libraries_2016.1.150/linux/compiler/lib/mic:/opt/intel/compilers_and_libraries_2016.1.150/linux/mpi/mic/lib:/opt/intel/compilers_and_libraries_2016.1.150/linux/compiler/lib/mic:/opt/intel/compilers_and_libraries_2016.1.150/linux/mkl/lib/mic:/opt/intel/compilers_and_libraries_2016.1.150/linux/tbb/lib/mic
      GTK_MODULES=overlay-scrollbar:unity-gtk-module
      QTLIBS=-L/usr/lib -lQtCore -lQtGui
      CDF_BIN=/usr/local/cdf/bin
      G4LEDATA=/home/daekyu/Documents/geant4/share/Geant4-9.6.4/data/G4EMLOW6.32
      USER=daekyu
      G4VIS_USE_OPENGLQT=1
      LD_LIBRARY_PATH=/home/daekyu/Documents/clhep/lib:/home/daekyu/Documents/geant4/lib:/home/daekyu/Documents/geant4/lib:/opt/intel/compilers_and_libraries_2016.1.150/linux/compiler/lib/intel64:/opt/intel/compilers_and_libraries_2016.1.150/linux/mpi/intel64/lib:/opt/intel/compilers_and_libraries_2016.1.150/linux/mpi/mic/lib:/opt/intel/compilers_and_libraries_2016.1.150/linux/ipp/lib/intel64:/opt/intel/compilers_and_libraries_2016.1.150/linux/compiler/lib/intel64:/opt/intel/compilers_and_libraries_2016.1.150/linux/mkl/lib/intel64:/opt/intel/compilers_and_libraries_2016.1.150/linux/tbb/lib/intel64/gcc4.4:/opt/intel/debugger_2016/libipt/intel64/lib:/opt/intel/compilers_and_libraries_2016.1.150/linux/daal/lib/intel64_lin:/opt/intel/compilers_and_libraries_2016.1.150/linux/daal/../compiler/lib/intel64_lin:/opt/intel/compilers_and_libraries_2016.1.150/linux/compiler/lib/intel64:/opt/intel/compilers_and_libraries_2016.1.150/linux/mpi/intel64/lib:/opt/intel/compilers_and_libraries_2016.1.150/linux/mpi/mic/lib:/opt/intel/compilers_and_libraries_2016.1.150/linux/ipp/lib/intel64:/opt/intel/compilers_and_libraries_2016.1.150/linux/compiler/lib/intel64:/opt/intel/compilers_and_libraries_2016.1.150/linux/mkl/lib/intel64:/opt/intel/compilers_and_libraries_2016.1.150/linux/tbb/lib/intel64/gcc4.4:/opt/intel/debugger_2016/libipt/intel64/lib:/opt/intel/compilers_and_libraries_2016.1.150/linux/daal/lib/intel64_lin:/opt/intel/compilers_and_libraries_2016.1.150/linux/daal/../tbb/lib/intel64_lin/gcc4.4:/opt/intel/compilers_and_libraries_2016.1.150/linux/daal/../compiler/lib/intel64_lin
      LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lz=01;31:*.xz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.axa=00;36:*.oga=00;36:*.spx=00;36:*.xspf=00;36:
      QTFLAGS=-I/usr/include/qt4 -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtOpenGL
      XDG_SESSION_PATH=/org/freedesktop/DisplayManager/Session0
      MIC_LIBRARY_PATH=/opt/intel/compilers_and_libraries_2016.1.150/linux/compiler/lib/mic:/opt/intel/compilers_and_libraries_2016.1.150/linux/mpi/mic/lib:/opt/intel/compilers_and_libraries_2016.1.150/linux/tbb/lib/mic:/opt/intel/compilers_and_libraries_2016.1.150/linux/compiler/lib/mic:/opt/intel/compilers_and_libraries_2016.1.150/linux/mpi/mic/lib:/opt/intel/compilers_and_libraries_2016.1.150/linux/tbb/lib/mic
      XDG_SEAT_PATH=/org/freedesktop/DisplayManager/Seat0
      G4NEUTRONHPDATA=/home/daekyu/Documents/geant4/share/Geant4-9.6.4/data/G4NDL4.2
      CPATH=/opt/intel/compilers_and_libraries_2016.1.150/linux/ipp/include:/opt/intel/compilers_and_libraries_2016.1.150/linux/mkl/include:/opt/intel/compilers_and_libraries_2016.1.150/linux/tbb/include:/opt/intel/compilers_and_libraries_2016.1.150/linux/daal/include:/opt/intel/compilers_and_libraries_2016.1.150/linux/ipp/include:/opt/intel/compilers_and_libraries_2016.1.150/linux/mkl/include:/opt/intel/compilers_and_libraries_2016.1.150/linux/tbb/include:/opt/intel/compilers_and_libraries_2016.1.150/linux/daal/include
      SSH_AUTH_SOCK=/run/user/1000/keyring-rfh3zQ/ssh
      G4RADIOACTIVEDATA=/home/daekyu/Documents/geant4/share/Geant4-9.6.4/data/RadioactiveDecay3.6
      CDF_INC=/usr/local/cdf/include
      SESSION_MANAGER=local/ubuntu:@/tmp/.ICE-unix/2136,unix/ubuntu:/tmp/.ICE-unix/2136
      DEFAULTS_PATH=/usr/share/gconf/ubuntu.default.path
      XDG_CONFIG_DIRS=/etc/xdg/xdg-ubuntu:/usr/share/upstart/xdg:/etc/xdg
      NLSPATH=/opt/intel/compilers_and_libraries_2016.1.150/linux/compiler/lib/intel64/locale/%l_%t/%N:/opt/intel/compilers_and_libraries_2016.1.150/linux/mkl/lib/intel64/locale/%l_%t/%N:/opt/intel/debugger_2016/gdb/intel64_mic/share/locale/%l_%t/%N:/opt/intel/debugger_2016/gdb/intel64/share/locale/%l_%t/%N:/opt/intel/compilers_and_libraries_2016.1.150/linux/compiler/lib/intel64/locale/%l_%t/%N:/opt/intel/compilers_and_libraries_2016.1.150/linux/mkl/lib/intel64/locale/%l_%t/%N:/opt/intel/debugger_2016/gdb/intel64_mic/share/locale/%l_%t/%N:/opt/intel/debugger_2016/gdb/intel64/share/locale/%l_%t/%N
      CDF_HELP=/usr/local/cdf/lib/cdf/help
      PATH=/home/daekyu/geant4_workdir/bin/Linux-g++:/home/daekyu/Documents/geant4/bin:/opt/intel/compilers_and_libraries_2016.1.150/linux/bin/intel64:/opt/intel/compilers_and_libraries_2016.1.150/linux/mpi/intel64/bin:/opt/intel/debugger_2016/gdb/intel64_mic/bin:/opt/intel/compilers_and_libraries_2016.1.150/linux/bin/intel64:/opt/intel/compilers_and_libraries_2016.1.150/linux/mpi/intel64/bin:/opt/intel/debugger_2016/gdb/intel64_mic/bin:/home/daekyu/anaconda2/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
      DESKTOP_SESSION=ubuntu
      GLQTLIBS=-L/usr/lib -lQtCore -lQtGui -lQtOpenGL
      G4LIB=/home/daekyu/Documents/geant4/lib/Geant4-9.6.4
      G4ROOTMAKE=/home/daekyu/Documents/geant4/share/Geant4-9.6.4/geant4make
      QT_IM_MODULE=ibus
      QT_QPA_PLATFORMTHEME=appmenu-qt5
      TBBROOT=/opt/intel/compilers_and_libraries_2016.1.150/linux/tbb
      G4LIB_BUILD_SHARED=1
      G4PIIDATA=/home/daekyu/Documents/geant4/share/Geant4-9.6.4/data/G4PII1.3
      CDF_LIB=/usr/local/cdf/lib
      JOB=dbus
      PWD=/home/daekyu
      XMODIFIERS=@im=ibus
      CLHEP_BASE_DIR=/home/daekyu/Documents/clhep
      GDB_CROSS=/opt/intel/debugger_2016/gdb/intel64_mic/bin/gdb-mic
      CDF_JAVA=/usr/local/cdf/cdfjava
      GNOME_KEYRING_PID=1976
      LANG=en_US.UTF-8
      GDM_LANG=en_US
      MANDATORY_PATH=/usr/share/gconf/ubuntu.mandatory.path
      QTMOC=/usr/bin/moc-qt4
      IM_CONFIG_PHASE=1
      COMPIZ_CONFIG_PROFILE=ubuntu
      G4SAIDXSDATA=/home/daekyu/Documents/geant4/share/Geant4-9.6.4/data/G4SAIDDATA1.1
      DAALROOT=/opt/intel/compilers_and_libraries_2016.1.150/linux/daal
      GDMSESSION=ubuntu
      G4VIS_USE_OPENGLX=1
      MPM_LAUNCHER=/opt/intel/debugger_2016/mpm/mic/bin/start_mpm.sh
      G4UI_USE_TCSH=1
      INTEL_PYTHONHOME=/opt/intel/debugger_2016/python/intel64/
      SESSIONTYPE=gnome-session
      G4VIS_USE_RAYTRACERX=1
      CLHEP_INCLUDE_DIR=/home/daekyu/Documents/clhep/include
      XDG_SEAT=seat0
      HOME=/home/daekyu
      SHLVL=1
      G4SYSTEM=Linux-g++
      G4REALSURFACEDATA=/home/daekyu/Documents/geant4/share/Geant4-9.6.4/data/RealSurface1.0
      LANGUAGE=en_US
      GNOME_DESKTOP_SESSION_ID=this-is-deprecated
      G4UI_USE_QT=1
      PYTHONPATH=/usr/local/lib/python2.7/site-packages/:
      LOGNAME=daekyu
      COMPIZ_BIN_PATH=/usr/bin/
      CLASSPATH=/opt/intel/compilers_and_libraries_2016.1.150/linux/daal/lib/daal.jar:/opt/intel/compilers_and_libraries_2016.1.150/linux/daal/lib/daal.jar
      XDG_DATA_DIRS=/usr/share/ubuntu:/usr/share/gnome:/usr/local/share/:/usr/share/
      QT4_IM_MODULE=xim
      DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-pJOaGEEtR4
      G4WORKDIR=/home/daekyu/geant4_workdir
      PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
      CDF_LEAPSECONDSTABLE=/usr/local/cdf/CDFLeapSeconds.txt
      LESSOPEN=| /usr/bin/lesspipe %s
      QTLIBPATH=/home/daekyu/anaconda2/lib
      INFOPATH=/opt/intel/documentation_2016/en/debugger//gdb-ia/info/:/opt/intel/documentation_2016/en/debugger//gdb-mic/info/:/opt/intel/documentation_2016/en/debugger//gdb-igfx/info/:/opt/intel/documentation_2016/en/debugger//gdb-ia/info/:/opt/intel/documentation_2016/en/debugger//gdb-mic/info/:/opt/intel/documentation_2016/en/debugger//gdb-igfx/info/
      INSTANCE=
      TEXTDOMAIN=im-config
      XDG_RUNTIME_DIR=/run/user/1000
      DISPLAY=:0
      XDG_CURRENT_DESKTOP=Unity
      GTK_IM_MODULE=ibus
      LESSCLOSE=/usr/bin/lesspipe %s %s
      G4LIB_USE_ZLIB=1
      TEXTDOMAINDIR=/usr/share/locale/
      I_MPI_ROOT=/opt/intel/compilers_and_libraries_2016.1.150/linux/mpi
      COLORTERM=gnome-terminal
      XAUTHORITY=/home/daekyu/.Xauthority
      _=/usr/bin/printenv

    • #2797 Reply
      Sangwoo
      회원

      올려주신 내용은 잘 봤습니다. 혹시 지금 사용중이신 Python 브릿지 기능은 정상적으로 구동이 되고 있는지 궁금합니다. 왜냐하면 원래 리눅스에서 이 기능을 설정하기 위해서는 LD_LIBRARY_PATH, PYTHONHOME, PYTHONPATH 항목들이 다음과 유사한 방식으로 설정되어 있어야 하는데요.

      export PATH=”/home/tech_support/python/anaconda/bin:$PATH”
      export PYTHONHOME=”/home/tech_support/python/anaconda”
      export PYTHONPATH=”/usr/local/exelis/idl85/bin/bin.linux.x86_64:/usr/local/exelis/idl85/lib/bridges”
      export LD_LIBRARY_PATH=”$LD_LIBRARY_PATH:/home/tech_support/python/anaconda/lib:/usr/local/exelis/idl85/bin/bin.linux.x86_64″

      올려주신 내용상에서는 이와 유사한 부분들이 보이지 않아서 그렇습니다. 사실 위와 같은 셋업이 없으면 Python 브릿지 기능 자체가 정상 구동이 되지 않거든요. 이 부분을 한번 확인해주시면 감사하겠습니다. 전에 올려주셨던 정보들을 보면 아마도 IDL내에서 Python을 불러오는 작업은 정상적으로 구동되는 것처럼 보였는데, 반대로 Python에서 IDL을 불러오는 것도 정상적으로 구동되는지에 대해서도 알려주시면 도움이 될 것 같습니다. 이 부분은 Python내에서 from idlpy import IDL 명령을 실행해보면 확인이 가능합니다.

    • #2798 Reply
      tlseorb0111
      회원

      답변 갑사합니다.

      우분투 14.04 에서는 따로 path 설정을 해주지 않아도 idl 에서 python이 사용 가능한데
      우분투 12.04 에서는 적어주신 path를 설정해 줘야 idl 에서 python 이 사용 가능합니다.

      또 우분투 14.04 의 경우 아래와 같이 path를 .bashrc에 추가한 뒤
      export LD_LIBRARY_PATH=”$LD_LIBRARY_PATH:/usr/lib”
      export LD_LIBRARY_PATH=”$LD_LIBRARY_PATH:/home/daekyu/anaconda2/lib”
      export LD_LIBRARY_PATH=”$LD_LIBRARY_PATH:/usr/local/exelis/idl85/bin/bin.linux.x86_64″

      export PYTHONHOME=”/home/daekyu/anaconda2″
      export PYTHONPATH=”$PYTHONPATH:/usr/local/exelis/idl85/bin/bin.linux.x86_64″
      export PYTHONPATH=”$PYTHONPATH:/usr/local/exelis/idl85/lib/bridges”

      Python 내에서 from idlpy import IDL 명령어는 별문제 없이 실행되는 것 같습니다.

      idl 내에서 python bridge의 다은 명령어들 예를 들어 numpy를 사용한다던가.. 하는 것들은 모두 문제 없이 되는 것 같습니다.

      다만 idl 내에서 python bridge 후 ncdf 파일을 열때 튕기는 경우, 이것도 python bridge 를 사용하기 전 idl에서 dlm_load, ‘ncdf’ 사용 후 ncdf 파일을 읽으면 정상 적으로 읽히지만 .FULL_RESET_SESSION을 사용할 경우 또 튕깁니다. (.RESET_SESSION 은 튕기지 않습니다.)

      같은 버전의 idl과 anaconda를 사용해 윈도우에서 작업을 할 경우는 문제가 없습니다.

    • #2799 Reply
      Sangwoo
      회원

      올려주신 답변을 보니 PATH 설정의 필요성이 리눅스 버전마다도 또 다른가보군요. 전체적으로 보면 Python 패키지의 버전이라든지, OS의 세부 버전 등에 따라 여러가지 상황들이 나올 수 있는 것 같습니다. 특히나 Python과 리눅스 모두 오픈소스라는 속성을 고려하면, 둘 사이의 조합의 따라 나올 수 있는 상황의 경우의 수가 많은 것으로 보입니다. 지금의 상황은 어쨌든 이런 문제가 발생하기 때문에 나름대로 DLM_LOAD를 사용하셨고, 작업 종료 후 그 DLM들의 흔적을 지우고자 .RESET 대신 .FULL_RESET을 사용하신 것으로 보입니다. 그런데 이 경우에 문제가 발생하는 것을 보면 아마도 Python 기능과 DLM 사이의 뭔가 알 수 없는 충돌이 있는 것이 아닌가 짐작이 됩니다.

      말씀드렸듯이, 본사 기술진에 이 문제를 일단 보고를 하였고 아마 이 사람들도 나름대로 원인 파악을 해볼 것으로 예상은 합니다만, 금방 해결이 되진 못할겁니다. 따라서 지난번에 언급하셨던 것처럼, 명령들의 순서를 약간 바꿔서 문제가 발생하지 않도록 하는 방법을 사용해서 작업을 하시길 당분간은 권장드립니다. 이번 이슈는 Python 브릿지 기능이 리눅스에서 어떤가에 대한 참고 자료가 된 것 같아서, 리포트해주신 것에 대해서 굉장히 감사하게 생각하고 있습니다. 이 기능을 가급적 여러 OS에서 테스트해보고는 싶지만 여의치 않을 경우가 많거든요. 하여간 이 문제와 관련하여 뭔가 또 연락이 오면 여기 올리도록 하겠습니다.

8 답변 글타래를 보이고 있습니다
'python bridge 버그'에 답변달기
글쓴이 정보: