我需要处理这个问题已经有一段时间了,但是从来没有真正弄清楚为自定义模块导入/设置PYTHONPATH的最pythonic方式是什么。我知道我可以使用virtualenv来管理它,我知道我可以在脚本内部或通过pth文件设置它,但这些对我来说似乎都不是很干净和pythonic,所以我猜我错过了什么。
几乎总是,我感兴趣的所有自定义模块都包含在我克隆的git目录中,该目录包含我正在运行的任何脚本,如果这简化了事情。
我猜测virtualenv就是答案,但我想如果我错过任何东西我会问。
编辑:为了澄清,这只是关于自定义模块的问题。我已经在使用PyPI模块的pip了。
答案 0 :(得分:0)
virtualenv是一个良好的开端。
还有像pip和easy_install这样的包管理器来管理第三方模块。
在代码中,您可以使用:
import sys
sys.path.append('/path/to/customModule')
答案 1 :(得分:0)
Virtualenv就是这样做的。
pip install virtualenv
然后创建一个文件夹来设置您的环境。在该文件夹中:
virtualenv <new_env_name>
那将在该目录中创建一个新文件夹,里面有一个bin文件夹,在该bin文件夹中运行source on activate。然后,您可以执行pip install,它只会为该环境安装它。
如果您正在克隆一个git仓库,您也希望能够轻松地仔细阅读代码(比如您还在处理该代码),请将其克隆到您的work_dir中,然后通过符号链接或别名将包文件夹添加到在virtualenv的lib目录中的site-package目录。否则,如果你正确打包它,如果你做python setup.py安装,它应该安装正确的virtualenv。
答案 2 :(得分:0)
您也可以使用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 .
了解详情