0

私は 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 つの卵フォルダーが作成された理由はまだよくわかりませんが、それらをパスに追加しないでください。

4

1 に答える 1

1

私は引用します

http://peak.telecommunity.com/DevCenter/PythonEggs

.egg ファイルは単に名前が変更された zip ファイルです。

zip プログラムで卵を開くか、拡張子を .zip に変更して解凍します。

「Python Eggs の簡単な紹介」

于 2013-09-25T15:49:11.243 に答える