mju*_*ewu 12 python pip heroku
对于Heroku上的我的(Django)项目,我将requirements.txt文件中的一个依赖项更新为更新版本,现在我希望Heroku升级已安装的版本.我试过了:
heroku run "pip install -r requirements.txt --upgrade -E ."
Run Code Online (Sandbox Code Playgroud)
哪个将正确的输出吐出到终端,但显然实际上没有升级任何东西; 当我跑:
heroku run "pip freeze -E ."
Run Code Online (Sandbox Code Playgroud)
所有软件包版本都是相同的.我甚至尝试删除包,但也没有用.如何强制在Heroku上的Python项目中升级依赖项?
Cra*_*ens 16
您应该能够在本地升级它然后重新运行pip冻结.在您的requirements.txt中,== versionhere应该是每次推送时安装的版本.
当你运行heroku运行时,它在一个孤立的dyno中运行,然后它被升级然后被破坏.为了使更改保持不变,必须在git push期间将其编译到您的slug中.
快速更新,现在有utils来完成这个功能.
https://github.com/heroku/heroku-repo
在Heroku工具带中安装插件
heroku plugins:install https://github.com/heroku/heroku-repo.git
清除应用程序的Heroku缓存(有效删除pip安装的所有软件包)
heroku repo:purge_cache -a <APPNAME>
来自文档: 这将删除存储在存储库中的构建缓存的内容.这是在应用程序的运行过程中完成的
重建
你现在可以正常推动.
目前推送似乎是导致重建的唯一方法,请参阅StackOverflow上的重新编译Heroku slug而不进行推送或配置更改以获取更多信息.
我想提交我的答案,以防万一有人遇到同样的情况。
Heroku 不会升级版本中已有的软件包(这是有道理的),但是从源安装时无法升级软件包,即使它是不同的提交。
我找到的解决方案是通过使用带有pip install --upgrade -r requirements.txt. 由于其余包已固定,因此它仅影响源包。
| 归档时间: |
|
| 查看次数: |
5339 次 |
| 最近记录: |