0

Flask 新手并在 Heroku 上部署,尝试推送到 Heroku,安装依赖项时出现此错误:

pipenv 版本看起来很有趣,不确定这是否正确,或者如果这是错误,如何纠正它

Enumerating objects: 38, done.
Counting objects: 100% (38/38), done.
Delta compression using up to 8 threads
Compressing objects: 100% (30/30), done.
Writing objects: 100% (38/38), 83.94 KiB | 10.49 MiB/s, done.
Total 38 (delta 8), reused 0 (delta 0), pack-reused 0
remote: Compressing source files... done.
remote: Building source:
remote:
remote: -----> Python app detected
remote: -----> Installing python-3.8.5
remote: -----> Installing pip
remote: -----> Installing dependencies with Pipenv 2018.5.18
remote:        Traceback (most recent call last):
remote:          File "/tmp/build_9fedd330/.heroku/python/lib/python3.8/site-packages/pipenv/patched/prettytoml/elements/abstracttable.py", line 27, in _enumerate_items
remote:            yield next(non_metadata), next(non_metadata)
remote:        StopIteration
remote:
remote:            return toml.loads(contents)
remote:          File "/tmp/build_9fedd330/.heroku/python/lib/python3.8/site-packages/pipenv/vendor/toml.py", line 307, in loads
remote:            raise TomlDecodeError("Key group not on a line by itself.")
remote:        toml.TomlDecodeError: Key group not on a line by itself.
remote:  !     Push rejected, failed to compile Python app.
remote:
remote:  !     Push failed
remote: Verifying deploy...
remote:

不知道错误是什么!任何帮助,将不胜感激。由于向我询问有关许多代码的更多详细信息,我删除了一些错误列表

4

1 回答 1

1

如果您还没有这样做,请为您的代码创建一个包含依赖项的文件并明确指定版本(示例):

Flask==0.8
Jinja2==2.6
Werkzeug==0.8.3
certifi==0.0.8
chardet==1.0.1
distribute==0.6.24
gunicorn==0.14.2
requests==0.11.1 

然后(如果您尚未创建它),设置一个新的虚拟环境,安装所有要求并使用此环境中的 python 检查您的代码是否正在运行。

  1. 安装虚拟环境: python3 -m pip install --user virtualenv

  2. 创建虚拟环境:python3 -m venv env

  3. 激活虚拟环境source env/bin/activate

  4. 安装所有要求pip install -r requirements.txt

  5. 在您激活虚拟环境的同一控制台中运行您的应用程序。

Heroku 使用以下命令安装依赖项pip install -r requirements.txt。因此,如果它在您的本地机器上给您错误,您就会知道问题出在哪里。

于 2020-07-28T11:12:35.780 回答