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

时间:2013-04-01 19:36:11

标签: python virtualenv

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

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

我猜测virtualenv就是答案,但我想如果我错过任何东西我会问。

编辑:为了澄清,这只是关于自定义模块的问题。我已经在使用PyPI模块的pip了。

3 个答案:

答案 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 .

https://pip-installer.org/en/latest/usage.html#pip-install

了解详情