我正在使用 Heroku 尝试部署我的应用程序。连接到我的 Github 存储库后,然后在 \xe2\x80\x9cManual deploy\xe2\x80\x9d 下,我点击 \xe2\x80\x9cDeploy Branch\xe2\x80\x9d
\n\nGithub 存储库包含requirements.txt其中包含
numpy\npandas\nmatplotlib\npickle\ngunicorn\nflask\nRun Code Online (Sandbox Code Playgroud)\n\nHeroku 上的错误说
\n\n Collecting pickle (from -r /tmp/build_0f73c7cf93d0cf7e0d53415c51d2e21f/requirements.txt (line 4))\n\n Could not find a version that satisfies the requirement pickle (from -r /tmp/build_0f73c7cf93d0cf7e0d53415c51d2e21f/requirements.txt (line 4)) (from versions: )\n\n No matching distribution found for pickle (from -r /tmp/build_0f73c7cf93d0cf7e0d53415c51d2e21f/requirements.txt (line 4))\n\n\n\n! Push rejected, failed to compile Python app.\n\n ! Push failed\nRun Code Online (Sandbox Code Playgroud)\n\n然而,pickle似乎安装在我的 Ubuntu 机器上。当我python在终端上输入时,然后import pickle,我没有看到任何错误
另外,当我尝试
\n\nfilename = 'outfile.pickle'\noutfile = open(filename,'wb')\npickle.dump(dataframe,outfile)\noutfile.close()\nRun Code Online (Sandbox Code Playgroud)\n\n我在我的目录中看到 pickle 文件
\n\n为什么我在 Heroku 中收到此错误?
\n眼前的问题是这pickle是Python标准库中的一个模块。无需安装它(因此无需将其包含在您的requirements.txt文件中)。
通常,最好从与生产中使用的相同依赖项文件本地安装依赖项。这将发现这样的问题,即您有一个不应该存在的条目。
但是,即使您可以构建此代码,您也可能不应该在 Heroku 上运行此代码。Heroku 的文件系统是短暂的。您保存的文件将在下次 dyno 重新启动时丢失。这种情况经常发生(至少每天一次)。
您可以将数据保存在客户端服务器数据库中,例如Heroku 的 Postgres 服务,或者如果您确实需要保存文件,Heroku 建议使用 Amazon S3 等数据库。
| 归档时间: |
|
| 查看次数: |
8799 次 |
| 最近记录: |