2

我正在使用带有 Cygwin 环境的 Python 来开发数据处理脚本和 Python 包,我想积极使用这些脚本,同时更新这些脚本所依赖的包。我的问题是最佳实践是什么,建议管理模块加载路径以隔离和测试我的开发更改但不影响生产脚本的工作。

Python 按以下顺序导入模块(参见 M. Lutz,Learning Python

  1. 主目录。
  2. PYTHONPATH目录。
  3. 标准库目录。
  4. 任何*.pth文件的内容。

我当前的解决方案是将我的包安装在本地(而不是/usr/lib/python2.x/ )目录中,并在全局目录中site-packages添加一个文件,以便默认加载这些文件。然后,在开发目录中,我只需修改以加载我正在积极处理本地更改的包。 *.pthsite-packagesPYTHONPATH

有没有更标准的方法来处理这种情况?设置一种virtualenv或其他方式来操作模块加载路径?

4

1 回答 1

1

这只是我的意见,但在这种情况下,我可能会使用 virtualenvs 和 Makefiles/scripts 的组合。我还没有针对您的特定用例这样做,但我经常为一个项目设置多个 virtualenv,每个都有不同的 python 版本。然后我可以使用 Makefiles 在我的一个或所有 virtualenvs 中运行我的代码或测试。似乎设置一个可以让您键入make devel以在开发环境和make production生产环境中运行的生成文件并不难。

或者,您可以使用 git 分支来执行此操作。保持您的生产脚本打开master,并使用功能分支来隔离和测试更改,同时仍然让您的生产脚本git checkout master远离。

于 2013-05-29T15:25:30.047 回答