IDL – Python 2.7 bridge setup 에 관해.

게시판 IDL Q&A IDL – Python 2.7 bridge setup 에 관해.

태그: , ,

0 답변 글타래를 보이고 있습니다
  • 글쓴이
    • #2997 Reply
      hyeongsikYun
      회원

      IDL-Python bridge 기능을 사용하는데 있어 질문이 있습니다.

      이전 이상우 박사의 블로그를 통해 bridge 설정하는 법을 보았고
      Winodws 버전(노트북)에서 성공적으로 연결하여 원활한 사용을 할 수 있었습니다.

      하지만 본래 사용하는 컴퓨터는 Linux 기반의 ubuntu를 OS로 사용하고 있었으며
      지금 사용하는 데이터의 사이즈가 커져서 노트북으로는 처리에 무리가 있는 상황에 다가왔습니다.
      따라서 linux 에서 IDL-python bridge setup을 시도하게 되었는데 여기서 문제가 발생하였습니다.

      일단 IDL이 python으로부터 여러 함수를 불러오는 것은 가능하였습니다.
      예시————————————————
      IDL> python.import(‘scipy’)
      <module ‘scipy’ from ‘/home/hs-yun/Enthought/Canopy_64bit/User/lib/python2.7/site-packages/scipy/__init__.py’>
      IDL>
      —————————————————-

      따라서 이제 python 에서 idlpy를 통해 IDL의 기능을 사용할 수 있으면 되는데
      여기서 유니코드 관련 에러가 발생하였습니다.
      예시————————————————
      >>> from idlpy import IDL
      Traceback (most recent call last):
      File “<stdin>”, line 1, in <module>
      File “/opt/IDL85/exelis/idl85/lib/bridges/idlpy.py”, line 19, in <module>
      pyidl = __import__(idllibrary)
      ImportError: /opt/IDL85/exelis/idl85/bin/bin.linux.x86_64/pythonidl27.so: undefined symbol: PyUnicodeUCS4_AsUTF8String
      >>>
      —————————————————-

      현재 상황으로는 Python은 정상적으로 IDL의 library를 불러오고 있는데
      그것을 사용하는 과정 중에 에러가 나는 것으로 보입니다.
      “undefined symbol: PyUnicodeUCS4_AsUTF8String” 에러를 구글링 해보면
      이 문제는 Python을 설치할 때 UCS2 와 UCS4, 둘 중 어는 것을 쓸 것인지
      정하여 설치하는데 필요한 setting을 잘못 선택한 것이라고 합니다.
      이에 이상우 박사에게 문의를 하였고, 받은 답장에는
      설치된 python이 UCS2로 설치되었는지 UCS4로 설치되었는지 확인하는 방법이 있었습니다.

      여기서 이상한 점을 찾아내게 되었는데요
      Windows 기반의 노트북에 설치되어있는 Python도, linux 기반의 데스크탑에 설치된 python도
      모두 UCS2를 사용하고 있었습니다. 그리고 idl85/lib/bridge/idlpy.py 또한
      Windows 기반에 설치된 파일과 Linux 기반에 설치된 파일이 완전히 똑같았습니다.
      이에 Python이 읽기 못하는 UCS4의 파일은 idlpy.py 가 아닌 것으로 생각되는데요
      위의 에러 메세지를 보면
      “ImportError: /opt/IDL85/exelis/idl85/bin/bin.linux.x86_64/pythonidl27.so: undefined symbol: PyUnicodeUCS4_AsUTF8String”
      라고 적어져 있는데, Windows IDL의 “idl85/bin/binx86_64/pythonidl27.pyd” 와
      linux IDL의 “idl85/bin/bin.linux.x86_64/pythonidl27.so”의 차이가 아닌가 하는 생각이 듭니다.

      PyUnicodeUCS4_AsUTF8String error에 관하여 여러 글들이 python을 UCS4를 읽도록 설치하는 것을
      해답으로 하고 있는데, 그렇게 되면 다른 library들(numpy, scipy, matplotlib, etc…)이
      원활히 작동하지 않을까 우려가 됩니다. 또한, windows 버전에서 UCS2를 읽도록 설치되었음에도
      정상적으로 작동하는 것을 확인 했는데 UCS4로 설치한다고 문제가 해결될지도 의문이 듭니다.

      혹시 이 문제에 관하여 어느 것이 문제인지,
      어떻게 해결하는지 아시는 분이 있으신가요?

0 답변 글타래를 보이고 있습니다
'IDL – Python 2.7 bridge setup 에 관해.'에 답변달기
글쓴이 정보: