【问题标题】:Where are dependent libraries stored in Heroku?Heroku 中的依赖库存储在哪里?
【发布时间】:2012-05-27 01:18:40
【问题描述】:

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

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

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

【问题讨论】:

  • 你为什么不问问 Heroku 的人,或者查看他们的文档?
  • 我检查了他们的文档,但找不到该信息,这就是我发布的原因。但可以肯定的是,我可以问那里的人。只是想在我这样做之前看看这里是否有人知道。
  • 除了是星期六晚上,所以有点不想在星期一早上他们回来之前被这个问题难住......所以在此期间,如果有人知道,请告诉我知道!我在可以访问的最高级别目录中搜索了特定文件,但找不到该文件。

标签: python django heroku dependencies


【解决方案1】:

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

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

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

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

【讨论】:

    【解决方案2】:

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

    例如,我将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 安装框架中工作。

    【讨论】:

    • 太棒了,谢谢。你是对的,现在我认为这更有意义。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-18
    • 1970-01-01
    • 2019-12-21
    • 2014-12-29
    • 2015-07-03
    • 1970-01-01
    相关资源
    最近更新 更多