在Heroku上找不到火炬== 1.5.0 + cpu的匹配分布

时间:2020-05-16 18:28:02

标签: python django heroku pytorch torch

我正在尝试部署使用机器学习模型的Django应用。机器学习模型需要pytorch才能执行。 当我尝试部署时,它给了我这个错误

ERROR: Could not find a version that satisfies the requirement torch==1.5.0+cpu (from -r /tmp/build_4518392d43f43bc52f067241a9661c92/requirements.txt (line 23)) (from versions: 0.1.2, 0.1.2.post1, 0.1.2.post2, 0.4.1, 0.4.1.post2, 1.0.0, 1.0.1, 1.0.1.post2, 1.1.0, 1.2.0, 1.3.0, 1.3.1, 1.4.0, 1.5.0)
       ERROR: No matching distribution found for torch==1.5.0+cpu (from -r /tmp/build_4518392d43f43bc52f067241a9661c92/requirements.txt (line 23))
 !     Push rejected, failed to compile Python app.
 !     Push failed

我的requirements.txt是

asgiref==3.2.7
certifi==2020.4.5.1
chardet==3.0.4
cycler==0.10.0
dj-database-url==0.5.0
Django==3.0.6
django-heroku==0.3.1
future==0.18.2
gunicorn==20.0.4
idna==2.9
imageio==2.8.0
kiwisolver==1.2.0
matplotlib==3.2.1
numpy==1.18.4
Pillow==7.1.2
psycopg2==2.8.5
pyparsing==2.4.7
python-dateutil==2.8.1
pytz==2020.1
requests==2.23.0
six==1.14.0
sqlparse==0.3.1
torch==1.5.0+cpu
torchvision==0.6.0+cpu
urllib3==1.25.9
whitenoise==5.0.1

runtime.txt是python-3.7.5
但是,当我使用命令pip install torch==1.5.0+cpu我正在使用python 3.7.5和pip 20.0.2时,在计算机上安装它不会产生任何类型的错误。
完整的代码是here
如何解决此问题,我确实需要部署我的应用程序。谢谢

3 个答案:

答案 0 :(得分:7)

PyTorch不会通过PyPI分发仅CPU版本。它们只能通过其自定义注册表使用。

如果在PyTorch - Get Started Locally上选择仅CPU版本,则会得到以下指示:

pip install torch==1.5.0+cpu torchvision==0.6.0+cpu -f https://download.pytorch.org/whl/torch_stable.html

由于您没有手动执行pip安装,因此不能简单地添加-f https://download.pytorch.org/whl/torch_stable.html

作为替代方案,您可以将其作为独立行放入requirements.txt中。确切地放置在什么位置并不重要,但通常放在最上面。

-f https://download.pytorch.org/whl/torch_stable.html
asgiref==3.2.7
certifi==2020.4.5.1
chardet==3.0.4
cycler==0.10.0
dj-database-url==0.5.0
Django==3.0.6
django-heroku==0.3.1
future==0.18.2
gunicorn==20.0.4
idna==2.9
imageio==2.8.0
kiwisolver==1.2.0
matplotlib==3.2.1
numpy==1.18.4
Pillow==7.1.2
psycopg2==2.8.5
pyparsing==2.4.7
python-dateutil==2.8.1
pytz==2020.1
requests==2.23.0
six==1.14.0
sqlparse==0.3.1
torch==1.5.0+cpu
torchvision==0.6.0+cpu
urllib3==1.25.9
whitenoise==5.0.1

答案 1 :(得分:0)

我不是火炬专家,但是我看到其他需要C编译器和/或其他库的AI包也存在类似问题。

  1. 查看Heroku上是否有可用的“ buildpack”来安装这些依赖项,或者

  2. 更改为使用“容器”分发方法,在该方法中,您将Docker映像构建并推送到heroku作为部署策略。

答案 2 :(得分:0)

我尝试在我的项目中安装 Torch 1.5.0,但它支持我的本地机器,但是当我在 Heroku 中部署它时出现错误。当我把下面 requiremenmts.txt 它工作正常 永远记住它需要从第 1 行开始 要求.txt: 1 -f https://download.pytorch.org/whl/torch_stable.html 2 torch== 1.8.1+cpu 3. torchvision==0.9.1+cpu