我正在使用Python和Cygwin环境开发数据处理脚本和Python包我想主动使用这些脚本,同时还要更新这些脚本所依赖的包。我的问题是什么是最佳实践,建议管理模块加载路径以隔离和测试我的开发更改,但不影响生产脚本的工作。
Python按以下顺序导入模块(参见M. Lutz,学习Python )
PYTHONPATH
目录。*.pth
文件的内容。我目前的解决方案是在本地(不在/usr/lib/python2.x/
)site-packages
目录中安装我的软件包,并在全局*.pth
目录中添加site-packages
文件,这些是默认加载。在开发目录中,我只需修改PYTHONPATH
以加载我正在积极处理本地更改的包。
有没有更标准的方法来处理这种情况?设置virtualenv
或其他一些操纵模块加载路径的方法?
答案 0 :(得分:1)
这只是我的观点,但在这种情况下我可能会使用virtualenvs和Makefiles / scripts的组合。我没有为你的具体用例做过,但我经常为一个项目设置多个virtualenvs,每个项目都有不同的python版本。然后我可以使用Makefile在我的一个或所有virtualenvs中运行我的代码或测试。似乎设置一个允许您在开发环境中运行make devel
的生成文件并为生产环境键入make production
并不太难。
或者,您可以使用git分支来执行此操作。将您的生产脚本保留在master
上,并使用功能分支来隔离和测试更改,同时让您的生产脚本只有git checkout master
。