virtualenvを使用してPythonの仮想環境を作成し、有効化すると、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) bash-4.1$ which python
/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
1.ある人が、この方法で問題を解決できると言っていました(私は別の方法で解決したので、うまくいくかどうかわかりません): Py3.4' の lib パスを $LD_LIBRARY_PATH 環境変数に追加する まず、python3.4のlibパス(インストールしたフォルダ内)を調べます(私の場合):/opt/python361/libを環境変数に追加してください: バッシュ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/python361/lib
2.python3.6でvirtualenvを使用する際に同様の問題が発生したため、以下の方法で解決しました:
- まず、`sudo vi /etc/ld.so.conf` を編集し、このファイルに python3.x の lib パス(私の場合は /opt/python361/lib )を追加し、この conf ファイルを修正したものを保存します;
- そして、`sudo /sbin/ldconfig -v`でこのファイルをアクティブにします。以上です。
LD_LIBRARY_PATH=[libpython3.4m.so の Python パス]`をエクスポートする。
libpython3.4m.so`は、ビルドしたpythonのソースの下にあります。
.bashrcに記述しておくと、ログイン時に自動的に設定されます。
私のマシンではvirtualenvを強制的に3.4にすることはできませんが、virtualenvのlib
の下に、ローカルのpythonインストールへのシンボリックリンクがたくさんあるのがわかると思います。libpython3.4m.so`はその中の一つで取得されているのでしょう。