更改dotcloud上的依赖项代码。 Django的

时间:2012-11-27 22:17:23

标签: python django dotcloud

我正在使用Dotcloud部署我的Django应用程序。在本地开发时,我不得不在某些依赖项的代码中进行更改(在我的virtualenv中)。

所以我的问题是:有没有办法在dotcloud上部署时对依赖项进行相同的更改(例如django-registration或django_socketio)?

感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

如果你使用的是requirements.txt,不可以,那就没有办法从pypi那里做到这一点,因为Dotcloud只是下载你从pypi指定的软件包,显然你的virtualenv中的更改不是将被规范版本的包反映出来。

为了使用已编辑的依赖项版本,您必须像编写其他任何模块一样将它们捆绑到代码中,并从那里import将它们捆绑在一起。

答案 1 :(得分:1)

有许多方法,但并非所有方法都干净/容易/可能。

如果这些依赖项位于github,bitbucket或类似的代码存储库中,您可以:

  • 分叉依赖,
  • 编辑你的前叉,
  • 指向requirements.txt文件中的分叉。

这将允许您跟踪对这些依赖项的进一步更改,并轻松地将您自己的修改与未来版本合并。

否则,您可以在代码中包含(已修改的)依赖项。它不是很干净,增加了你的应用程序的大小,但也没关系。

最后但并非最不重要的是,您可以编写一个非常hackish postinstall脚本,找到要修改的.py文件(例如import foo ; foopath = foo.__file__),然后在该文件上应用补丁。这可能会导致大多数系统管理员在恐怖中畏缩,但值得一提的是: - )