私は Redhat Linux を使用しており、デフォルトの Python バージョンは 2.6 であるため、Python 2.7.4 を /user/local/bin フォルダーにインストールし、シェル プロファイルを変更しました。
$which python
/usr/local/bin/python
どっちがいい。
ボックスのスーパーユーザー権限がないため、書き込み権限のあるフォルダーにPythonライブラリをインストールしようとしました。だから、これは私のライブラリの構造です:
というフォルダを作りました
/share/python
そのフォルダーの下に、library という名前の別のフォルダーを作成し、そこにすべての Python ライブラリ ソース フォルダーを配置しました。pyes (Python Elastic Search)パッケージをインストールしたいとします。最初にsource_folder、tar unzip、cdをフォルダーにダウンロードしました。それから私はやった
python setup.py install --prefix=/share/python
その後、インストールは正常に完了し(以前にこれを行ったことがあります)、下に2つのライブラリフォルダーが作成されました
/share/python/lib/python2.7/site-packages/
そして彼らは
urllib3-1.6-py2.7.egg
pyes-0.20.1-py2.7.egg
そして、Pythonを開くと。sys.path を印刷して、カスタマイズしたライブラリ パスが含まれていることを再確認します。これはそれが言ったことです:
>>import sys
>>print sys.path
['','/usr/local/lib/python2.7/site-packages/...'..., '/share/python/lib/python2.7/site-packages']
そして、Pythonがpyesとurllib3(依存関係としてインストールされている)を見つける場所を知っていると確信しています。ただし、ライブラリをロードできず、エラーは次のようになります。
>>> from pyes import *
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named pyes
>>> import urllib3
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named urllib3
なぜこれが起こるのでしょうか?
更新: これらの新しい卵フォルダーをパスに追加する必要があり、動作します: python setup.py install で 2 つの卵フォルダーが作成された理由はまだよくわかりませんが、それらをパスに追加しないでください。