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

use*_*021 4 python django dependencies heroku

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

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

Heroku 的文件结构中这些依赖项存储在哪里?当我进入 lib 中的 python 文件夹时,站点包似乎没有我的库。

rad*_*ual 6

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

app/.heroku/python/lib/python2.7/site-packages/
Run Code Online (Sandbox Code Playgroud)

您可以通过运行以下命令查看位于 heroku 上的站点包的内容:

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


Eva*_*rim 4

简而言之,站点包位于/app/.heroku/venv/lib/python2.7/site-packages. 如果您想四处查看,可以使用“heroku run -app [app_name] bash”打开远程 shell。但是,您可能不想只编辑就位的包,因为不能保证 heroku 不会将其清除并在另一个实例中使用您的requirements.txt 重新开始。相反,如果您需要自定义包,一个好的策略是创建您自己的项目代码分支,然后在requirements.txt 中指定您的自定义分支。

例如,我用于django-crowdsourcing我的一个网站,但需要自定义代码。因此,我在谷歌代码上创建了自己的分叉,并使用requirements.txt中的以下条目指向此自定义分叉:

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

这告诉 pip 签出我的 fork 副本并使用它来将包安装到我的应用程序的 heroku 的 virtualenv 中。这种方式更加稳健,因为它在 Heroku 希望您使用的 pip 安装框架内工作。