web-dev-qa-db-ja.com

python:共有ライブラリのロード中にエラーが発生しました:libpython3.4m.so.1.0:共有オブジェクトファイルを開けません:そのようなファイルまたはディレクトリはありません

python virtualenvを使用して仮想環境を作成しました。アクティブにすると、Pythonインストール済み、

(virtualenv-test)bash-4.1 $ whereis python

python:/usr/bin/python2.6 /usr/bin/python2.6-config/usr/bin/python /usr/lib/python2.6 /usr/lib64/python2.6/usr/X11R6/bin/python2 .6 /usr/X11R6/bin/python2.6-config/usr/X11R6/bin/python /usr/bin/X11/python2.6 /usr/bin/X11/python2.6-config/usr/bin/X11/python /usr/include/python2.6 /usr/share/man/man1/python.1.gz

(virtualenv-test)Pythonのbash-4.1 $

/ data/virtualenv-test/bin/python

しかし、pythonと入力した後、次のエラーメッセージが表示されました。根本的な理由は何ですか?

(virtualenv-test) bash-4.1$ python
python: error while loading shared libraries: libpython3.4m.so.1.0: cannot open shared object file: No such file or directory
19
user785099
  1. 誰かがこの方法で問題を解決できると言いました(別の方法で問題を解決するため、それが機能するかどうかわかりません):py3.4のlibパスを$ LD_LIBRARY_PATH環境変数に追加します最初にpython3.4のlibパスを見つけます(インストールしたフォルダ内)、私のように:/ opt/python361/lib、それを環境変数に追加します:
export LD_LIBRARY_PATH = $LD_LIBRARY_PATH:/opt/python361/lib
  1. Python3.6でvirtualenvを使用すると同様の問題が発生し、次の方法を修正します。
    • まず、Sudo vi /etc/ld.so.confを編集し、このファイルにpython3.xのlibパスを追加し(私のように/ opt/python361/lib)、このconfファイルの変更を保存します。
    • 次に、Sudo /sbin/ldconfig -vでこのファイルをアクティブにします。それで全部です。
20
williezh

export LD_LIBRARY_PATH=[your python path to libpython3.4m.so]

libpython3.4m.soは、ビルド元のpythonソースの下にあります。

それを.bashrcに入れて、ログイン時に自動的に設定します。

私のマシンでvirtualenvを3.4に強制することはできませんが、virtualenvのlibの下に、ローカルのpythonインストールへのシンボリックリンクがあります。libpython3.4m.soと思いますそれらのいずれかによってフェッチされます。

7
Pobe

Python 3.6では、

Sudo apt-get install libpython3.6-dev
4
A. Attia

別の方法は、LDFLAGS="-Wl,-rpath /usr/local/lib"構成中、たとえば

./configure --prefix=/usr/local --enable-shared LDFLAGS="-Wl,-rpath /usr/local/lib"

/usr/local/libは、libpython3.*.soファイルは

2
buxizhizhoum

上記の称賛、python 3.Xの場合、この問題は次の方法で修正できます。

Sudo apt-get install libpython3.x-dev

環境パスを手動で変更する必要はありません。

0
Sina