当前位置: 首页 > 面试题库 >

在heroku上部署matplotlib失败。如何正确做到这一点?

越雨泽
2023-03-14
问题内容

我已经使用pip在我的virtualenv中安装了matplotlib。刚开始时是失败的,但是我这样做之后easy_install -U distribute,安装顺利进行。

这是我的工作(在我的git仓库根文件夹中):

virtualenv env
source env/bin/activate
pip install gunicorn
pip install numpy
easy_install -U distribute
pip install matplotlib

然后,我通过使用制作了requirements.txt pip freeze > requirements.txt。结果如下:

argparse==1.2.1
distribute==0.7.3
gunicorn==17.5
matplotlib==1.3.0
nose==1.3.0
numpy==1.7.1
pyparsing==2.0.1
python-dateutil==2.1
six==1.3.0
tornado==3.1
wsgiref==0.1.2

当我尝试部署应用程序时发生了问题:

(env)gofrendi@kirinThor:~/kokoropy$ git push -u heroku
Counting objects: 9, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (5/5), done.
Writing objects: 100% (5/5), 586 bytes, done.
Total 5 (delta 3), reused 0 (delta 0)

-----> Python app detected
-----> No runtime.txt provided; assuming python-2.7.4.
-----> Using Python runtime (python-2.7.4)
-----> Installing dependencies using Pip (1.3.1)
       Downloading/unpacking distribute==0.7.3 (from -r requirements.txt (line 2))
         Running setup.py egg_info for package distribute

       Downloading/unpacking matplotlib==1.3.0 (from -r requirements.txt (line 4))
         Running setup.py egg_info for package matplotlib
           The required version of distribute (>=0.6.28) is not available,
           and can't be installed while this script is running. Please
           install a more recent version first, using
           'easy_install -U distribute'.

           (Currently using distribute 0.6.24 (/app/.heroku/python/lib/python2.7/site-packages))
           Complete output from command python setup.py egg_info:
           The required version of distribute (>=0.6.28) is not available,

       and can't be installed while this script is running. Please

       install a more recent version first, using

       'easy_install -U distribute'.



       (Currently using distribute 0.6.24 (/app/.heroku/python/lib/python2.7/site-packages))

       ----------------------------------------
       Command python setup.py egg_info failed with error code 2 in /tmp/pip-build-u55833/matplotlib
       Storing complete log in /app/.pip/pip.log

 !     Push rejected, failed to compile Python app

To git@heroku.com:kokoropy.git
 ! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'git@heroku.com:kokoropy.git'
(env)gofrendi@kirinThor:~/kokoropy$

似乎heroku服务器无法正确安装matplotlib。

当我这样做时easy_install -U distribute,可能不会被点子记录。

Matplotlib也具有几个非python库依赖(例如:libjpeg8-dev,libfreetype和libpng6-dev)。我可以在本地安装这些依赖项(例如:通过apt- get)。但是,这也不会被pip记录。

所以,我的问题是:如何在heroku部署服务器中正确安装matplotlib?


问题答案:

终于,我能够解决这个问题。

首先,我使用此buildpack:https : //github.com/dbrgn/heroku-buildpack-python-
sklearn

要使用此buildpack,请运行以下命令(也许这不是必要步骤):

heroku config:set BUILDPACK_URL=https://github.com/dbrgn/heroku-buildpack-python-sklearn/

然后我将requirements.txt更改为:

argparse==1.2.1
distribute==0.6.24
gunicorn==17.5
wsgiref==0.1.2
numpy==1.7.0
matplotlib==1.1.0
scipy==0.11.0
scikit-learn==0.13.1

这里最重要的部分是我安装了matplotlib 1.1.0(当前最新的是1.3.0)。可能会出现一些“不推荐使用的numpy
API”警告。但就我而言,这似乎还不错。

结果如下(由于我使用的是免费服务器,因此页面站点可能已关闭)
http://kokoropy.herokuapp.com/example/plotting

matplotlib生成的图



 类似资料:
  • 问题内容: 当我尝试在heroku中进行部署时遇到问题。有趣的是,这是三天前的工作。另外,在本地计算机上工作正常。 Bcrypt的版本是3.0.0,节点8.12.0 我确实需要部署此服务器。您能告诉我如何解决此错误吗?我尝试了一些找到的解决方案,但没有任何效果。我什至尝试卸载并再次安装Bcrypt,但无法正常工作。 谢谢您的帮助。 这是日志。 问题答案: 我也发生了同样的事情。 未在package

  • 我正在开发一个基于nodejs和postgresql的corona病毒项目。我正在尝试在heroku上部署我的应用程序,但我遇到了一些问题。这些问题来自postgres配置(我认为)。 我有一个. env文件,其中我初始化了一些变量(DATABASE_URL,...),但我不知道如何将它们传输到heroku。我关联了一个插件postgres-heroku,它会生成一个具有随机值的DATABASE_

  • 我是lagom scala API初学者。我使用lagom scala play框架开发了rest API。现在我想在heroku上部署我的服务,只是为了实时测试的目的。我遵循下面的链接继续。 ------>正在运行:sbt编译阶段 正在下载1.2.8的sbt launcher: 摘自https://repo.scala-sbt.org/scalasbt/maven-releases/org/sc

  • 我正在为一个业余项目工作Java REST api,我使用Heroku作为我的部署平台。我设法使用部署了应用程序。 检测不到set buildpack https://codon-buildpacks.s3.amazonaws.com/buildpacks/heroku/java.tgz 更多信息:https://devcenter.heroku.com/articles/buildpacks#d

  • 当我试图将我的流星应用程序部署到Heroku时,它在引导时崩溃了。

  • 我得到一个错误,当我试图部署一个未经修改的版本的最新的Git桶源heroku. ! 无法使用sbt生成应用程序 ! 推送被拒绝,未能编译Scala应用程序 git@heroku.com:xxxxxx.git![远程拒绝]主- 一切都在本地构建和运行,没有问题。http://gitbucket.herokuapp.com/有一个演示应用程序,所以我知道这是可能的。我怎样才能绕过这个错误? [编辑]我