导入自定义模块的Pythonic方法?

导入自定义模块的Pythonic方法?,python,virtualenv,Python,Virtualenv,我需要处理这个问题已经有一段时间了,但从来没有真正弄清楚为自定义模块导入/设置PYTHONPATH的最具python风格的方式是什么。我知道我可以使用virtualenv来管理它,我知道我可以在脚本中设置它,或者通过pth文件设置它,但是这些对我来说都不是很干净和符合Python的,所以我猜我遗漏了一些东西 几乎总是,我感兴趣的所有自定义模块都包含在我克隆下来的git目录中,该目录包含我正在运行的任何脚本,如果这样可以简化事情的话 我猜virtualenv是答案,但我想如果我遗漏了什么,我会问的

我需要处理这个问题已经有一段时间了,但从来没有真正弄清楚为自定义模块导入/设置PYTHONPATH的最具python风格的方式是什么。我知道我可以使用virtualenv来管理它,我知道我可以在脚本中设置它,或者通过pth文件设置它,但是这些对我来说都不是很干净和符合Python的,所以我猜我遗漏了一些东西

几乎总是,我感兴趣的所有自定义模块都包含在我克隆下来的git目录中,该目录包含我正在运行的任何脚本,如果这样可以简化事情的话

我猜virtualenv是答案,但我想如果我遗漏了什么,我会问的


编辑:澄清一下,这只是一个关于自定义模块的问题。我已经将pip用于PyPI中的模块。

virtualenv是一个良好的开端

还有一些包管理器,如pip和easy_install,用于管理第三方模块

在代码中,您可以使用:

import sys
sys.path.append('/path/to/customModule')

Virtualenv是实现这一点的方法

pip install virtualenv
然后创建一个文件夹来设置您的环境。在该文件夹中:

virtualenv <new_env_name>
virtualenv
这将在该目录中创建一个新文件夹,其中有一个bin文件夹,在该bin文件夹中运行source on activate。然后,您可以执行pip安装,它将仅为该环境安装它


如果您要克隆一个git repo,并且希望能够轻松地阅读代码(就像您也在处理该repo),请将其克隆到您的工作目录中,然后将包文件夹符号链接或别名到该virtualenv的lib目录中的站点包目录中。否则,如果正确打包,如果您执行python setup.py安装,它应该正确安装该virtualenv。

您也可以使用pip安装不在PyPI上的包。您只需要一个URI端点和一个有效的python包:

示例:

$ pip install https://github.com/pypa/pip/archive/develop.zip#egg=pip
$ pip install git+https://github.com/pypa/pip.git#egg=pip
$ pip install git+git://github.com/pypa/pip.git#egg=pip
$ pip install /path/to/pip.tar.gz
$ pip install .

阅读更多信息,请访问

您也可以使用pip安装不在PyPI上的软件包。您只需要一个URI端点和一个有效的python包@HugoTavares你能把它作为一个答案添加进来吗,这样我就可以接受它了?添加了我的评论作为答案。有没有好的方法将这些本地软件包添加到requirements.txt中,以便与pip install-r requirements.txt一起安装?