11

我的机器上有一个本地git repository,假设在/develop/myPackage.
我目前正在将它开发为一个 python 包(一个 Django 应用程序),我想从我的本地访问它virtualenv。我试图将它的路径包含在我的PYTHONPATH(我在 Mac 上)

export PATH="$PATH:/develop/myPackage"

__init__.py该目录在其根目录和每个子目录中已经包含一个。无论我做什么但我无法让它工作,python 都不会看到我的包。

替代方案是:

  • 将我的本地更改推送到 github 并从那里将包安装在我的 virtualenv 中pip
  • 激活我的 virtualenv 并手动安装包python setup.py install

由于我经常需要对我的代码进行更改,因此即使是很小的更改,最后两个解决方案也会一直需要太多的工作。

难道我做错了什么?您会提出更好的解决方案吗?

4

2 回答 2

13

从本地路径以可编辑模式安装它:

pip install -e /develop/MyPackage

这实际上是在您的 virtualenv 中对包进行符号链接,因此您可以继续开发和测试。

于 2013-08-02T16:08:53.133 回答
4

您在上面显示的示例使用 PATH,而不是 PYTHONPATH。通常,python 使用的搜索路径部分基于 PYTHONPATH 环境变量(PATH 在这种情况下几乎没有用处。)

尝试这个:

export PYTHONPATH=$PYTHONPATH:/develop/myPackage

尽管实际上,您可能希望它指向包含您的包的目录(因此您可以执行“import myPackage”,而不是在包中导入内容。话虽如此,您可能想要:

export PYTHONPATH=$PYTHONPATH:/develop/

有关 Python 的模块/包搜索路径的更多信息,请参考此处的 python 文档:http: //docs.python.org/2/tutorial/modules.html#the-module-search-path

默认情况下,Python 使用与它一起安装的包作为其默认路径,因此 PYTHONPATH 在环境中未设置。

于 2013-08-02T00:13:40.807 回答