【发布时间】:2012-09-07 00:01:15
【问题描述】:
如果我使用
安装所有软件包python setup.py install --prefix=~/.local
如何让 Python 从那里而不是从系统范围的版本中读取我的包?我尝试编辑PYTHONPATH 将~/.local/lib/python2.x/site-packages/ 放在首位,但没有帮助。
我认为~/.local 保证在 Python 2.6 及更高版本中首先被读取。这是真的?是否需要一些特殊的东西才能使它成为现实?那将解决问题。现在似乎PYTHONPATH 路径被合并到sys.path 中,但在系统范围的site-packages 目录之后的列表中,使得使用系统范围的版本而不是~/.local 中的版本。
不幸的是,使用pip 不是一种选择。
【问题讨论】:
-
尝试
import os;print os.environ['PYTHONPATH'];并确保包含您想要的路径 -
它们在里面,但是被忽略了。
-
类似的设置在我的 Ubuntu 机器上运行良好,无需对
PYTHONPATH或sys.path进行任何操作。在 Python shell 中导入sys模块我可以看到用户安装出现在 sys.path 列表中的本地和系统安装之前。如果这是您的情况并且您无法从用户安装中导入模块,那么您可能应该仔细检查您的安装是否正确:所有模块/包实际上都在那里,必需的__init__.py存在并且一切都具有适当的权限。
标签: python setuptools distutils setup.py