【问题标题】:Make Python conclusively read a package from a local directory使 Python 最终从本地目录中读取包
【发布时间】: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 机器上运行良好,无需对 PYTHONPATHsys.path 进行任何操作。在 Python shell 中导入 sys 模块我可以看到用户安装出现在 sys.path 列表中的本地和系统安装之前。如果这是您的情况并且您无法从用户安装中导入模块,那么您可能应该仔细检查您的安装是否正确:所有模块/包实际上都在那里,必需的__init__.py 存在并且一切都具有适当的权限。

标签: python setuptools distutils setup.py


【解决方案1】:

建议您将virtualenv 与适当的激活脚本一起使用,该脚本将负责正确设置 PYTHONPATH,而不会以任何方式弄乱系统范围的 Python 安装

http://www.virtualenv.org/en/latest/index.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多