[PYTHON] Python 실행 파일 libpython 공유 라이브러리를 찾을 수 없습니다.
PYTHONPython 실행 파일 libpython 공유 라이브러리를 찾을 수 없습니다.
CentOS 5에 Python 2.7을 설치하려고합니다. 다음과 같이 Python을 빌드하고 설치했습니다.
./configure --enable-shared --prefix=/usr/local
make
make install
/ usr / local / bin / python을 실행하려고하면이 오류 메시지가 나타납니다.
/usr/local/bin/python: error while loading shared libraries: libpython2.7.so.1.0: cannot open shared object file: No such file or directory
/ usr / local / bin / python에서 ldd를 실행하면
ldd /usr/local/bin/python
libpython2.7.so.1.0 => not found
libpthread.so.0 => /lib64/libpthread.so.0 (0x00000030e9a00000)
libdl.so.2 => /lib64/libdl.so.2 (0x00000030e9200000)
libutil.so.1 => /lib64/libutil.so.1 (0x00000030fa200000)
libm.so.6 => /lib64/libm.so.6 (0x00000030e9600000)
libc.so.6 => /lib64/libc.so.6 (0x00000030e8e00000)
/lib64/ld-linux-x86-64.so.2 (0x00000030e8a00000)
파이썬에게 libpython을 어디에서 찾을 수 있는지 어떻게 알 수 있습니까?
해결법
-
==============================
1.다음을 시도하십시오.
다음을 시도하십시오.
LD_LIBRARY_PATH=/usr/local/lib /usr/local/bin/python
/ usr / local / lib가 / usr / local / lib에 없으면 libpython2.7.so.1.0을 설치 한 폴더로 바꾸십시오.
이 방법이 효과가 있고 변경 사항을 영구히 적용하려면 다음 두 가지 옵션이 있습니다.
-
==============================
2.내 gravedigger 모자를 쓰고 ...
내 gravedigger 모자를 쓰고 ...
이 문제를 해결하는 가장 좋은 방법은 컴파일 할 때입니다. 하나의 접두사 접두사가 있기 때문에 어쨌든 실행 파일에 명시 적으로 공유 라이브러리의 위치를 명시 할 수 있습니다. OpenSSL과 다른 소프트웨어 패키지와는 달리 Python은 대체 라이브러리 경로를 처리 할 수있는 좋은 configure 지시어를 제공하지 않습니다 (모든 사람이 알고있는 루트가 아닙니다 ...). 가장 간단한 경우 필요한 것은 다음과 같습니다 :
./configure --enable-shared \ --prefix=/usr/local \ LDFLAGS="-Wl,--rpath=/usr/local/lib"
또는 비 Linux 버전을 선호하는 경우
./configure --enable-shared \ --prefix=/usr/local \ LDFLAGS="-R/usr/local/lib"
"rpath"플래그는 파이썬에게 특정 경로에 필요한 런타임 라이브러리를 가지고 있다고 알려줍니다. 이 아이디어를 바탕으로 표준 시스템 위치가 아닌 다른 위치에 설치된 종속성을 처리 할 수 있습니다. 예를 들어, 루트 액세스 권한이 없기 때문에 필자의 시스템에서는 거의 완전히 독립적 인 Python 설치가 필요하다. configure 라인은 다음과 같다.
./configure --enable-shared \ --with-system-ffi \ --with-system-expat \ --enable-unicode=ucs4 \ --prefix=/apps/python-${PYTHON_VERSION} \ LDFLAGS="-L/apps/python-${PYTHON_VERSION}/extlib/lib -Wl,--rpath=/apps/python-${PYTHON_VERSION}/lib -Wl,--rpath=/apps/python-${PYTHON_VERSION}/extlib/lib" \ CPPFLAGS="-I/apps/python-${PYTHON_VERSION}/extlib/include"
이 경우 파이썬이 파이썬 디렉토리 트리 자체 내에서 extlib 디렉토리로 사용하는 라이브러리 (ffi, readline 등)를 컴파일합니다. 이 방법으로 파이썬 - $ {PYTHON_VERSION} 디렉토리를 타르 (tar) 할 수 있으며, 어느 곳으로나 착륙 할 수 있으며, libc 나 libm 충돌을 일으키지 않는다면 "작동"할 것이다. 이것은 LD_LIBRARY_PATH를 계속 변경하거나 잘못된 버전의 Python 라이브러리를 선택하는 것에 대해 걱정할 필요가 없기 때문에 같은 상자에서 여러 버전의 Python을 실행하려고 할 때도 도움이됩니다.
편집 : 당신이 접두어로 사용하는 무엇을 PYTHONPATH 환경 변수를 설정하지 않으면 컴파일을 언급 깜빡하고 위의 예제를 확장 예 : PYTHONPATH를 사용되는 접두사로 설정 예 : 모듈을 컴파일하지 못했습니다 위의 예는 export PYTHONPATH = / apps / python - $ {PYTHON_VERSION} ...와 같습니다.
-
==============================
3.나는 똑같은 문제를 겪었고 이렇게 해결했다.
나는 똑같은 문제를 겪었고 이렇게 해결했다.
libpython이 어디에 있는지 알고 있다면, 나는 /usr/local/lib/libpython2.7.so.1.0이 될 것이라고 생각한다. 단지 심볼릭 링크를 만들면된다 :
sudo ln -s /usr/local/lib/libpython2.7.so.1.0 /usr/lib/libpython2.7.so.1.0
그런 다음 ldd를 다시 실행하여 작동하는지 확인하십시오.
-
==============================
4.CentOS 7의 소프트웨어 모음에서 Python 3.5를 설치했습니다. 모두 잘 작동했지만 간단한 CGI 스크립트를 실행하려고했을 때 공유 라이브러리 오류가이 질문에서 언급 된 것을 보았습니다.
CentOS 7의 소프트웨어 모음에서 Python 3.5를 설치했습니다. 모두 잘 작동했지만 간단한 CGI 스크립트를 실행하려고했을 때 공유 라이브러리 오류가이 질문에서 언급 된 것을 보았습니다.
tail /var/log/httpd/error_log AH01215: /opt/rh/rh-python35/root/usr/bin/python: error while loading shared libraries: libpython3.5m.so.rh-python35-1.0: cannot open shared object file: No such file or directory
모든 사용자에게 적용되는 시스템 전체 솔루션을 원했기 때문에 .profile 또는 .bashrc 파일에 내보내기 명령문을 추가하지 않았습니다. Red Hat 솔루션 페이지를 기반으로 한 줄짜리 솔루션이 있습니다. 그것을 지적 해 주셔서 감사합니다 :
echo 'source scl_source enable rh-python35' | sudo tee --append /etc/profile.d/python35.sh
다시 시작한 후에는 쉘에서 모두 정상적으로 작동하지만 때로는 웹 서버가 여전히 불평 할 수 있습니다. 셸과 서버 모두에서 항상 작동하는 또 다른 접근법이 있으며 더 일반적입니다. 나는 여기서 해결책을 보았고 실제로 여기에있는 대답들 중 하나에서 실제로 언급되었다는 것을 깨달았다. 어쨌든 CentOS 7에서는 다음과 같은 단계가 있습니다.
vim /etc/ld.so.conf
내 컴퓨터에서 다음 중 어느 것을 사용 했습니까?
include ld.so.conf.d/*.conf
그래서 나는 새 파일을 만들었습니다.
vim /etc/ld.so.conf.d/rh-python35.conf
그리고 덧붙였다 :
/opt/rh/rh-python35/root/usr/lib64/
그리고 캐시를 수동으로 다시 빌드하려면 다음을 수행하십시오.
sudo ldconfig
스크립트가 정상적으로 작동합니다.
이것은 일시적인 해결책 이었지만 재부팅시에는 작동하지 않았습니다.
sudo ldconfig /opt/rh/rh-python35/root/usr/lib64/ -v
-v (verbose) 옵션은 무슨 일이 진행되고 있는지보기위한 것입니다. 나는 그것이 한 것을 보았다 : / opt / rh / rh-python35 / root / usr / lib64 : libpython3.so.rh-python35 -> libpython3.so.rh-python35 libpython3.5m.so.rh-python35-1.0 -> libpython3.5m.so.rh-python35-1.0
이 특별한 오류는 사라졌습니다. 덧붙여 말하자면, 나는 그 후에 권한 오류를 없애기 위해 아파치 사용자에게 권한을 부여해야했다.
find를 사용하여 라이브러리의 디렉토리를 찾습니다. 다음과 같이 할 수도 있습니다.
sudo yum install mlocate sudo updatedb locate libpython3.5m.so.rh-python35-1.0
내 VM에서 다음을 반환합니다.
/opt/rh/rh-python35/root/usr/lib64/libpython3.5m.so.rh-python35-1.0
위에 표시된 것처럼 ldconfig에 줄 필요가있는 경로입니다.
-
==============================
5.Solaris 11에서
Solaris 11에서
파이썬 libs에 대한 심볼릭 링크를 해결하려면 LD_LIBRARY_PATH_64를 사용하십시오.
제 경우에는 python3.6 LD_LIBRARY_PATH가 작동하지 않았지만 LD_LIBRARY_PATH_64가 성공했습니다.
희망이 도움이됩니다. 문안 인사
-
==============================
6.그냥 python-lib를 설치하십시오. (python27-lib). libpython2.7.so1.0을 설치합니다. 우리는 수동으로 아무것도 설정할 필요가 없습니다.
그냥 python-lib를 설치하십시오. (python27-lib). libpython2.7.so1.0을 설치합니다. 우리는 수동으로 아무것도 설정할 필요가 없습니다.
-
==============================
7.명령을 사용하여 설치했습니다.
명령을 사용하여 설치했습니다.
./configure --prefix=/usr \ --enable-shared \ --with-system-expat \ --with-system-ffi \ --enable-unicode=ucs4 && make
자, 루트 사용자로서 :
make install && chmod -v 755 /usr/lib/libpython2.7.so.1.0
그런 다음 파이썬을 실행하려고 시도하고 오류가 발생했습니다.
그런 다음 루트 사용자로부터 로그 아웃하고 Python을 다시 실행하려고 시도했지만 성공적으로 작동했습니다.
-
==============================
8.이것은 나를 위해 일했다 ...
이것은 나를 위해 일했다 ...
$ sudo apt-get install python2.7-dev
-
==============================
9.필요한 것은 libpython [3 또는 2] dev 파일 설치를 설치하는 것입니다.
필요한 것은 libpython [3 또는 2] dev 파일 설치를 설치하는 것입니다.
from https://stackoverflow.com/questions/7880454/python-executable-not-finding-libpython-shared-library by cc-by-sa and MIT license
'PYTHON' 카테고리의 다른 글
[PYTHON] 목록에서 항목의 위치를 얻는 방법? (0) | 2018.10.06 |
---|---|
[PYTHON] 파이썬 : 문자열에서 \ xa0을 제거 하시겠습니까? (0) | 2018.10.06 |
[PYTHON] 파이썬에서 HTTP PUT을 수행 할 수있는 방법이 있습니까? (0) | 2018.10.06 |
[PYTHON] 설치 스크립트가 오류와 함께 종료되었습니다 : 'x86_64-linux-gnu-gcc'명령이 종료 상태 1로 실패했습니다 (0) | 2018.10.06 |
[PYTHON] 파이썬에서 문자열에서 부울로 변환 하시겠습니까? (0) | 2018.10.05 |