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
export LD_LIBRARY_PATH = $LD_LIBRARY_PATH:/opt/python361/lib
Sudo vi /etc/ld.so.conf
を編集し、このファイルにpython3.xのlibパスを追加し(私のように/ opt/python361/lib)、このconfファイルの変更を保存します。Sudo /sbin/ldconfig -v
でこのファイルをアクティブにします。それで全部です。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
と思いますそれらのいずれかによってフェッチされます。
Python 3.6では、
Sudo apt-get install libpython3.6-dev
別の方法は、LDFLAGS="-Wl,-rpath /usr/local/lib"
構成中、たとえば
./configure --prefix=/usr/local --enable-shared LDFLAGS="-Wl,-rpath /usr/local/lib"
/usr/local/lib
は、libpython3.*.so
ファイルは
上記の称賛、python 3.Xの場合、この問題は次の方法で修正できます。
Sudo apt-get install libpython3.x-dev
環境パスを手動で変更する必要はありません。