0

我使用的是 Redhat Linux,默认的 Python 版本是 2.6,所以我在 /user/local/bin 文件夹中安装了 Python 2.7.4 并修改了 shell 配置文件,所以当我这样做时:

$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

然后安装成功完成(我之前做过)并在下面创建了两个库文件夹

/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 创建了两个鸡蛋文件夹但不将它们添加到路径中。

4

1 回答 1

1

我引用

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

.egg 文件只是重命名的 zip 文件。

使用您的 zip 程序打开 egg,或者只是将扩展名重命名为 .zip,然后解压缩。

《Python Eggs 小介绍》

于 2013-09-25T15:49:11.243 回答