2015-01-12 5 views
1

질문을 변경하기 위해이 파일을 업데이트했습니다. 이미 .so 파일에서 가져 오기를 수행 할 수 있습니다. 이미 .py 파일 프런트 엔드가 있습니다.사이트 패키지에 설치된 모듈을 가져 오는 방법

CentOS 6.6에서 Python 2.6.6이 설치되어 있고 InformixDB-2.5를 설치하려고합니다.

python setup.py build_ext 명령은 몇 가지 경고를 반환하지만 gcc 단계는 오류없이 완료됩니다.

루트 권한으로 python setup.py install 명령이 오류없이 완료됩니다. 내가 파이썬을 실행하고 import informixdb를 입력 할 때

내 문제는 내가 모듈을 찾을 수 없습니다 오류

나는 this을 읽고, 이미 _informixdb.so과 함께 사이트 패키지에 informixdb.py이 한을 얻을 수있다. 해당 디렉토리에서 Python을 호출하고 import informixdb을 입력하면 오류가 발생하지 않습니다. 어떤 환경 변수를 고를 지, 아니면 이것에 심볼릭 링크를해야할지 모르지만 심볼릭 링크를 모른다.

오류 여기 python setup.py install

running install 
running build 
running build_py 
running build_ext 
running install_lib 
running install_egg_info 
Removing /usr/lib/python2.6/site-packages/InformixDB-2.5-py2.6.egg-info 
Writing /usr/lib/python2.6/site-packages/InformixDB-2.5-py2.6.egg-info 

의 출력입니다

먼저 해제 문제를 분리하기 위해, 같은 디렉토리에서 파이썬이나 스크립트를 호출하지 않는
[[email protected] InformixDB-2.5]$ python informixdb.py 
Traceback (most recent call last): 
    File "informixdb.py", line 146, in <module> 
    from _informixdb import * 
ImportError: No module named _informixdb 

답변

1

InformixDB를 설치 한 위치 또는 설치 위치. 대신 응용 프로그램이 어디에 있든 관계없이 호출하십시오. 거기에서 "import informixdb"를 시도하면 어떻게되는지보십시오. 파이썬이 "informixdb"(이름에 밑줄이 없음)를 찾을 수 없다는 불평을하면 파이썬 경로가 엉망이되어 InformixDB가 설치된 위치를 포함하도록 파이썬 경로를 수정해야합니다.

"_informixdb"(밑줄이 있음)를 가져올 수 없다고 불평하는 경우 _informixdb.so가 informixdb.py와 동일한 위치에 있고 해당 파일에 대한 사용 권한이 올바른지 확인하십시오. 그렇다면, 동적 링커가 Informix 클라이언트 런타임 라이브러리를 찾을 수없는 경우가 대부분입니다.

후자가 문제가되는지 확인하려면 "ldd /path/to/_informixdb.so"명령을 실행하고 출력을보십시오. ldd 명령이 libifXXX 라이브러리 중 하나를 찾을 수 없음을 나타냅니다 경우, 그 문제의

[email protected]:~$ ldd /usr/local/lib/python2.7/dist-packages/_informixdb.so 
    linux-gate.so.1 => (0x00f47000) 
    libifsql.so => /opt/informix/lib/esql/libifsql.so (0x001d9000) 
    libifasf.so => /opt/informix/lib/libifasf.so (0x00999000) 
    libifgen.so => /opt/informix/lib/esql/libifgen.so (0x00110000) 
    libifos.so => /opt/informix/lib/esql/libifos.so (0x0039f000) 
    libifgls.so => /opt/informix/lib/esql/libifgls.so (0x0061d000) 
    libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0x006c5000) 
    libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0x00be8000) 
    libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0x00342000) 
    libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0x001b1000) 
    libcrypt.so.1 => /lib/i386-linux-gnu/libcrypt.so.1 (0x00220000) 
    /lib/ld-linux.so.2 (0x0016a000) 

당신은 예를 들어, 인포믹스 라이브러리는 동적 링커에게해야합니다 : 그것은 다음과 같이 보일한다 LD_LIBRARY_PATH 환경 변수를 적절하게 설정하거나 etc/ld.so.conf.d에 추가하고 ldconfig를 실행함으로써 가능합니다.

+0

내일 작업하겠습니다. 감사. – octopusgrabbus

관련 문제