【问题标题】:Python module import orderPython 模块导入顺序
【发布时间】:2014-12-11 10:34:15
【问题描述】:

我已经从 Github 下载并安装了 Numpy 的开发版本,首先这个模块是通过标准导入导入的。在某个地方(我怀疑从 git 源安装包管理器更新或其他 python 包)Python 导入恢复到包管理器安装的 Numpy 模块。

如何让 Python 导入我从 git 源安装的模块?

我想避免在每个脚本中修改 sys.path。

我运行的是 Ubuntu Gnome 14.10。

路径如下:

>>> import sys
>>> sys.path
['',
 '/usr/local/bin',
 '/usr/local/lib/python2.7/dist-packages/matplotlib-1.5.x-py2.7-linux-x86_64.egg',
 '/usr/lib/python2.7/dist-packages',
 '/usr/lib/python2.7',
 '/usr/lib/python2.7/plat-x86_64-linux-gnu',
 '/usr/lib/python2.7/lib-tk',
 '/usr/lib/python2.7/lib-old',
 '/usr/lib/python2.7/lib-dynload',
 '/usr/local/lib/python2.7/dist-packages',
 '/usr/lib/python2.7/dist-packages/PILcompat',
 '/usr/lib/python2.7/dist-packages/gtk-2.0',
 '/usr/lib/pymodules/python2.7',
 '/usr/lib/python2.7/dist-packages/ubuntu-sso-client',
 '/usr/lib/python2.7/dist-packages/wx-2.8-gtk2-unicode',
 '/usr/lib/python2.7/dist-packages/IPython/extensions']

【问题讨论】:

  • 你在使用 virtualenv 吗?如果你不是,你应该是。
  • 同意丹尼尔。 Virtualenv 是您避免此类问题所需的工具。

标签: python git numpy


【解决方案1】:

推荐的方式是偏离路线,使用 VirtualEnv。但作为建议,您可以在处理该模块之前手动将 git numpy 源添加到 pythonpath。

$ export PYTHONPATH=$PYTHONPATH:/YOUR/REPO/LOCATION

在我了解 virtualenvs 之前,我曾经这样做过;)

【讨论】:

  • 我一定会看看 virtualenv。同时,上述更改 PYTHONPATH 的建议不起作用,因为即使我在 $PYTHONPATH 之前插入 repo,因为软件包安装位置仍然在 sys.path 中的 PYTHONPATH 之前插入。
【解决方案2】:

正如上面 cmets 所建议的,强烈建议使用 virtualenv 模块,因为当您拥有超过 1 个项目时,您将面临不同项目需要不同模块或一个模块的不同版本的问题。

假设您有 200 个项目,每个项目都需要一些模块才能工作。如果您决定与任何人共享您的项目之一,那么确定哪些依赖项具有该确切项目以及它需要哪些模块才能工作将是一场噩梦。

所以请检查virtualenvvirtualenvwrapper,这使得使用virtualenv 非常舒适。 这两个模块都可用于pip install,它们并不复杂,你会很快上手。花时间研究它们值得您获得好处。

【讨论】: