2013-09-25 64 views
0

我使用红帽Linux,默认的Python版本是2.6,所以我在/用户/ local/bin目录文件夹中安装了Python 2.7.4和修改的壳轮廓,所以当我这样做:另一个Python路径问题

$which python 
/usr/local/bin/python 

这很好。

由于我没有超级用户权限的框,所以我试图安装Python库到我有写权限的文件夹。所以这是我的图书馆的结构:

我创建了一个名为

/share/python 

而且这个文件夹下的文件夹,我创建了一个叫做库的另一个文件夹,我把所有的Python库源文件夹。假设我想安装pyes (Python Elastic Search)包。我首先下载了source_folder,tar解压缩和cd到文件夹中。然后我做了

python setup.py install --prefix=/share/python 

然后安装成功(I have done this before)完成,

/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 

任何想法,为什么会出现这种情况?

更新: 您需要将这些新蛋夹添加到您的路径,它会工作: 还是不明白为什么蟒蛇的setup.py安装创造了两个鸡蛋文件夹,但不要将其添加到路径。

+0

你不能访问蟒蛇蛋文件,它禁止 – drabo2005

+0

@ drabo2005权限问题?这两个文件夹的所有者就是我,权限级别是drwxrwsr-x,我认为这很好。对? –

回答

1

I quote

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

.egg文件只是改名为zip文件。

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

"A small introduction to Python Eggs"

+0

它可能作为Windows中的压缩文件存在,但在Linux中我看不到它是如何压缩的。然而,你的答案是非常鼓舞人心的,我试图将这两个鸡蛋文件夹添加到Python路径,现在它工作..我想知道为什么python setup.py安装没有为我添加... –

+0

我已经更新了我的答案,可能会帮助您了解鸡蛋如何工作的链接 – Paco

+0

您是否知道为什么python install prefix命令不会将新创建的egg文件夹添加到python路径中?在这种情况下,我能做些什么来自动包括蛋文件夹。 –