1

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

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

感谢您的帮助。

4

2 回答 2

1

如果您使用的是requirements.txt,不,没有办法从 pypi 做到这一点,因为 Dotcloud 只是下载您从 pypi 指定的包,显然您在 virtualenv 中的更改不会反映在规范版本中的包。

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

于 2012-11-27T22:57:35.303 回答
1

有很多方法,但并非所有方法都是干净/简单/可能的。

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

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

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

否则,您可以在代码中包含(修改后的)依赖项。它不是很干净,并且会增加您的应用程序的大小,但这也很好。

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

于 2012-11-27T23:00:02.730 回答