首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在使用requirements.txt和Heroku时,找不到匹配的酸菜分发版本

在使用requirements.txt和Heroku时,找不到匹配的酸菜分发版本
EN

Stack Overflow用户
提问于 2019-04-26 07:58:54
回答 1查看 6.4K关注 0票数 2

我正在使用Heroku尝试部署我的应用程序。连接到我的Github存储库后,在“手动部署”下,我点击了“部署分支”。

Github代码库包含requirements.txt,其中包含

代码语言:javascript
复制
numpy
pandas
matplotlib
pickle
gunicorn
flask

Heroku上的错误说

代码语言:javascript
复制
   Collecting pickle (from -r /tmp/build_0f73c7cf93d0cf7e0d53415c51d2e21f/requirements.txt (line 4))

     Could not find a version that satisfies the requirement pickle (from -r /tmp/build_0f73c7cf93d0cf7e0d53415c51d2e21f/requirements.txt (line 4)) (from versions: )

   No matching distribution found for pickle (from -r /tmp/build_0f73c7cf93d0cf7e0d53415c51d2e21f/requirements.txt (line 4))



!     Push rejected, failed to compile Python app.

 !     Push failed

然而,我的Ubuntu机器上似乎安装了pickle。当我在终端上输入python,然后输入import pickle时,我没有看到任何错误

还有,当我试着

代码语言:javascript
复制
filename = 'outfile.pickle'
outfile = open(filename,'wb')
pickle.dump(dataframe,outfile)
outfile.close()

我在我的目录中看到了pickle文件

为什么我在Heroku中得到这个错误?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-26 08:35:50

直接的问题是pickle is a module in Python's standard library。不需要安装它(因此也不需要将其包含在requirements.txt文件中)。

通常,从生产中使用的同一依赖项文件在本地安装依赖项是一个好主意。这将揭示这样的问题,其中您有一个不应该在那里的条目。

然而,您可能不应该在Heroku上运行此代码,即使您可以构建它。Heroku的文件系统is ephemeral。您保存的文件将在下次重新启动dyno时丢失。这种情况经常发生(at least once per day)

您可以将数据保存在客户机-服务器数据库(如Heroku's Postgres service )中,或者如果您确实需要保存文件Heroku recommends using something like Amazon S3

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55859065

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档