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