我正在使用 Dotcloud 部署我的 Django 应用程序。在本地开发时,我必须在一些依赖项的代码中进行更改(在我的 virtualenv 中)。
所以我的问题是:有没有办法在 dotcloud 上部署时对依赖项(例如 django-registration 或 django_socketio)进行相同的更改?
感谢您的帮助。
如果您使用的是requirements.txt
,不,没有办法从 pypi 做到这一点,因为 Dotcloud 只是下载您从 pypi 指定的包,显然您在 virtualenv 中的更改不会反映在规范版本中的包。
为了使用您的依赖项的编辑版本,您必须将它们捆绑到您的代码中,就像您编写的任何其他模块一样,并import
从那里开始。
有很多方法,但并非所有方法都是干净/简单/可能的。
如果这些依赖项位于 github、bitbucket 或类似的代码存储库上,您可以:
requirements.txt
文件中的分叉。这将允许您跟踪对这些依赖项的进一步更改,并轻松地将您自己的修改与未来版本合并。
否则,您可以在代码中包含(修改后的)依赖项。它不是很干净,并且会增加您的应用程序的大小,但这也很好。
最后但同样重要的是,您可以编写一个非常 hackish 的postinstall
脚本来定位要修改的 .py 文件(例如import foo ; foopath = foo.__file__
),然后在该文件上应用补丁。这可能会导致大多数系统管理员感到恐惧,但值得一提 :-)