使Python最终从本地目录读取包

使Python最终从本地目录读取包,python,setuptools,distutils,setup.py,Python,Setuptools,Distutils,Setup.py,如果我使用 python setup.py install --prefix=~/.local 如何让Python从那里而不是从系统范围的版本中读取我的包?我试图编辑PYTHONPATH以首先放置~/.local/lib/python2.x/site-packages/,但没有帮助 我认为在Python2.6和更高版本中保证首先读取~/.local。这是真的吗?是不是需要一些特别的东西来实现它?这将解决问题。现在看来,PYTHONPATH路径被合并到了sys.path中,但是在系统范围的站点包

如果我使用

python setup.py install --prefix=~/.local
如何让Python从那里而不是从系统范围的版本中读取我的包?我试图编辑
PYTHONPATH
以首先放置
~/.local/lib/python2.x/site-packages/
,但没有帮助

我认为在Python2.6和更高版本中保证首先读取
~/.local
。这是真的吗?是不是需要一些特别的东西来实现它?这将解决问题。现在看来,
PYTHONPATH
路径被合并到了
sys.path
中,但是在系统范围的
站点包
目录之后的列表中,使得系统范围的版本被使用,而不是
~/.local
中的版本


不幸的是,使用
pip
不是一个选项

建议您使用带有适当激活脚本的
virtualenv
,该脚本将负责正确设置PYTHONPATH,而不会以任何方式扰乱整个系统的Python安装


尝试执行
导入操作系统;打印os.environ['PYTHONPATH']并确保包含您想要的路径。它们在那里,但被忽略。类似的设置在我的Ubuntu框上运行良好,无需对
PYTHONPATH
sys.path
进行任何操作。在pythonshell中导入
sys
模块时,我可以看到用户安装比sys.path列表中的本地和系统安装显示得更早。如果这是您的情况,并且您无法从用户安装中导入模块,那么您可能应该仔细检查您的安装是否正确:所有模块/软件包实际上都在那里,必需的
\uuuuuuu init\uuuuuuuuupy
都存在,并且所有模块/软件包都具有适当的权限。