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