我在 Cygwin 环境中使用 Python 来开发数据处理脚本和 Python 包 我想积极使用这些脚本,同时更新这些脚本所依赖的包。我的问题是什么是最佳实践,管理模块加载路径的建议,以隔离和测试我的开发更改,但不影响生产脚本的工作。
Python 按以下顺序导入模块(参见 M. Lutz,Learning Python)
- 主目录。
PYTHONPATH
目录。- 标准库目录。
- 任何
*.pth
文件的内容。
我目前的解决方案是将我的包安装在本地(而不是在 /usr/lib/python2.x/
)site-packages
目录中并添加一个 *.pth
文件在全局 site-packages
目录中,因此默认情况下会加载这些文件。在开发目录中,我然后简单地修改 PYTHONPATH
以加载我正在积极处理本地更改的包。
有没有更标准的方法来处理这种情况?设置 virtualenv
或其他一些操作模块加载路径的方法?
最佳答案
这只是我的意见,但在这种情况下我可能会结合使用 virtualenvs 和 Makefiles/scripts。我没有针对您的特定用例这样做,但我经常为一个项目设置多个 virtualenvs,每个都有不同的 python 版本。然后我可以使用 Makefile 在我的一个或所有 virtualenvs 中运行我的代码或测试。似乎设置一个 makefile 并不会太难,让您键入 make devel
以在开发环境中运行,并为生产环境键入 make production
。
或者,您可以使用 git branches 来执行此操作。将您的生产脚本保存在 master
上,并使用功能分支来隔离和测试更改,同时仍然让您的生产脚本只是一个 git checkout master
。
关于python - 用于开发和生产的独立 Python 路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16817623/