Heroku中存储的依赖库在哪里?

时间:2012-05-20 01:08:49

标签: python django heroku dependencies

我已经在Heroku上启动了我的应用程序,但是需要更改我在requirements.txt文件中安装的一个依赖库中的一个文件。

在我的本地计算机上,这只是在我的虚拟环境中的lib> python2.7> site-packages等。

这些依赖项存储在Heroku的文件结构中的哪个位置?当我进入lib中的python文件夹时,site-packages似乎没有我的库。

2 个答案:

答案 0 :(得分:4)

简短的回答是网站包位于/app/.heroku/venv/lib/python2.7/site-packages。如果你想环顾四周,你可以使用`heroku run -app [app_name] bash'打开一个远程shell。但是,您可能不希望仅仅编辑软件包,因为无法保证heroku不会擦除干净并使用您的requirements.txt重新开始另一个实例。相反,如果你需要自定义一个包,一个好的策略是创建你自己的项目代码的fork,然后在requirements.txt中指定你自己的fork。

例如,我对我的某个网站使用django-crowdsourcing,但需要自定义代码。所以我在google代码上创建了自己的fork,并使用requirements.txt中的以下条目指向此自定义fork:

  

-e hg + https://evangrim@code.google.com/r/evangrim-django-crowdsourcing/@b824d8f377b5bc2706d9755650e3f35061f3e309#egg=django_crowdsourcing-dev

这告诉pip签出我的fork的副本并使用它将包安装到heroku的virtualenv中为我的应用程序。以这种方式做事更加健壮,因为它在heroku期望你使用的pip安装框架内工作。

答案 1 :(得分:4)

最近(截至2016年1月),依赖项安装在此位置:

app/.heroku/python/lib/python2.7/site-packages/

您可以通过运行此命令来查看站点包的内容,因为它位于heroku上:

$ heroku run ls .heroku/python/lib/python2.7/site-packages/