2016-12-05 40 views
1

我还是很新的蟒蛇所以请原谅我,如果这是非常简单或极思考这个错误的方式。导演的Python在另一个文件夹查找模块

我有Python 2.7版安装。从我所了解的当我运行下面的代码时,它列出了它寻找模块的目录。

Python 2.7.12 (default, Oct 11 2016, 14:42:58) 
[GCC 4.2.1 Compatible Apple LLVM 7.3.0 (clang-703.0.31)] on darwin 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import sys 
>>> print '\n'.join(sys.path) 

/usr/local/lib/python2.7/site-packages 
/usr/lib/python2.7/site-packages 
/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python27.zip 
/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7 
/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-darwin 
/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac 
/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac/lib-scriptpackages 
/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk 
/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-old 
/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/readline 
/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload 
/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages 

我有另一个目录,似乎有一堆我安装在它的python模块。 “/Library/Python/2.7/site-packages”

我想我需要做两件事情之一:

(1)直接蟒蛇在这额外的文件夹中查找模块。 我该怎么做?

(2)在它已经被引导到的文件夹中的一个安装模块。我一直在使用pip来安装模块,我认为pip正在安装到这个额外的导演。 如何检查pip是否安装到此文件夹?如何更改pip安装软件包的位置?

谢谢!

+0

一个简单的解决方法就是将代码附加到代码中的'sys.path'中,例如'sys.path.append( '/库/ Python的/ 2.7 /站点包')'。这应该在依赖这个目录的'import'之前完成。 –

+0

查看安装有pip的任何给定库的位置,使用pip show命令:'C:\ Users \ ...> pip show numpy'寻找线路位置:' – Aaron

+0

感谢,@ jmd_dk,这对我很有用!谢谢。任何方式来告诉它永久引用这个目录,而不是必须把我的代码? – user1500158

回答

3

这东西是site.py设置。你可以通过输入解释找出site.py

python -v 

另外,进口site在交互式解释和检查site.__file__属性。

还有在site.py一个有用的脚本,你可以用

python -m site 

运行要在输出看到什么有你的用户的网站,像

USER_BASE: '/home/<your_username>/.local' (exists) 
USER_SITE: '/home/<your_username>/.local/lib/python2.7/site-packages' (exists) 
ENABLE_USER_SITE: True 

当你pip install一个包,使用pip install --user,它会将模块安装到您的用户空间。 请勿使用sudo pip install安装东西。不要像jmd_dk中的“快速修复”那样手动敲入sys.path正确地做。

如果在阅读的site documentationPEP370,你仍然有问题正确设置用户现场后,则是可以接受的增加这样一行在您的bash配置文件:

export PYTHONPATH=/home/<your_username>/.local/lib/python2.7/site-packages 

如果您同时安装Python 3和Python 2,请注意两个解释器都会看到PYTHONPATH环境变量。在这种情况下,强烈建议为每个解释器(或使用虚拟环境)分别启用site.USER_SITE以提供足够的已安装软件包的名称空间。

+0

感谢您的信息。我不知道在代码行的前面添加sudo“将模块放在错误的地方”。我是否正确思考这个问题? – user1500158

+0

是的,你正在错误地思考它。您应该使用您的用户帐户安装python模块,而不是使用root帐户。 “jmd_dk”评论是有害的,如果我是主持人,我会删除它。 – wim

+0

感谢您的澄清! – user1500158

相关问题