Herokuapp 编译失败

Herokuapp fails to compile

我的应用程序之前已经编译过,但现在当我尝试推送新更改时,它给出了一个 spacy 模型语言包的无效片段警告:

Installing dependencies from Pipfile.lock (afd0bd)…
remote:        WARNING: Invalid fragment string egg=en-core-web-sm==2.1.0
remote:        ABORTING INSTALL... You will have to reinstall any packages that failed to install.
remote:        You may have to manually run pipenv lock when you are finished.
remote:  !     Push rejected, failed to compile Python app.
remote: 
remote:  !     Push failed
remote: Verifying deploy...
remote: 
remote: !       Push rejected to captain-hp-bot.

这是我的 pipfile:

[[source]]
name = "pypi"
url = "https://pypi.org/simple"
verify_ssl = true

[dev-packages]

[packages]
chatterbot = {editable = true,git = "https://github.com/mmoore7/ChatterBot.git"}
en-core-web-sm = {file = "https://github.com/explosion/spacy-models/releases/download/en_core_web_sm-2.1.0/en_core_web_sm-2.1.0.tar.gz"}
pymongo = "*"
flask = "*"
flask-wtf = "*"
flask-bcrypt = "*"
flask-login = "*"
dnspython = "*"
gunicorn = "*"
pandas = "*"
botbuilder-core = "*"
asyncio = "*"
html2text = "*"

[requires]
python_version = "3.8"

我认为这与它用于安装软件包的 pipenv 版本有关,即版本 2018.5.18。我在旧版本的 pipenv 上有一个确切的包(不太记得是哪个版本,但它是最近的版本),我追溯到这个问题:Issue #4318。它已在我现在在我的机器上使用的最新版本中修复,版本 2020.6.2。

如果是这个问题,我怎样才能让它使用更新版本的 pipenv 来完成编译?还是我在该包的 pipfile 中的语法错误(一段时间以来一直很好)。

我尝试清除缓存然后推送,但仍然出现相同的错误。

这是完整的日志:

Enumerating objects: 20, done.
Counting objects: 100% (20/20), done.
Delta compression using up to 12 threads
Compressing objects: 100% (10/10), done.
Writing objects: 100% (11/11), 14.39 KiB | 1.20 MiB/s, done.
Total 11 (delta 7), 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.3
remote: -----> Installing pip
remote: -----> Installing dependencies with Pipenv 2018.5.18…
remote:        Installing -e git+https://github.com/mmoore7/ChatterBot.git#egg=chatterbot…
remote:        Obtaining chatterbot from git+https://github.com/mmoore7/ChatterBot.git#egg=chatterbot
remote:          Cloning https://github.com/mmoore7/ChatterBot.git to ./src/chatterbot
remote:        Collecting mathparse<0.2,>=0.1 (from chatterbot)
remote:          Downloading https://files.pythonhosted.org/packages/c3/e5/4910fb85950cb960fcf3f5aabe1c8e55f5c9201788a1c1302b570a7e1f84/mathparse-0.1.2-py3-none-any.whl
remote:        Collecting nltk<4.0,>=3.2 (from chatterbot)
remote:          Downloading https://files.pythonhosted.org/packages/92/75/ce35194d8e3022203cca0d2f896dbb88689f9b3fce8e9f9cff942913519d/nltk-3.5.zip (1.4MB)
remote:        Collecting pint>=0.8.1 (from chatterbot)
remote:          Downloading https://files.pythonhosted.org/packages/3f/1c/95b113bd8da60e2aeecb4988c007a867682c739c721cb3ab16de77913040/Pint-0.12-py2.py3-none-any.whl (192kB)
remote:        Collecting python-dateutil<2.9,>=2.8 (from chatterbot)
remote:          Downloading https://files.pythonhosted.org/packages/d4/70/d60450c3dd48ef87586924207ae8907090de0b306af2bce5d134d78615cb/python_dateutil-2.8.1-py2.py3-none-any.whl (227kB)
remote:        Collecting pyyaml<5.4,>=5.3 (from chatterbot)
remote:          Downloading https://files.pythonhosted.org/packages/64/c2/b80047c7ac2478f9501676c988a5411ed5572f35d1beff9cae07d321512c/PyYAML-5.3.1.tar.gz (269kB)
remote:        Collecting spacy<2.2,>=2.1 (from chatterbot)
remote:          Downloading https://files.pythonhosted.org/packages/1f/e2/46650d03c7ff2b57ed7af211d41c3f606540f7adea92b5af65fcf9f605c0/spacy-2.1.9.tar.gz (30.7MB)
remote:        Collecting sqlalchemy<1.4,>=1.3 (from chatterbot)
remote:          Downloading https://files.pythonhosted.org/packages/05/ca/4c3ccb306fdec0e105a84c7d156e5bdd9c86a86923b05fd47877cddc62ed/SQLAlchemy-1.3.17-cp38-cp38-manylinux1_x86_64.whl (1.3MB)
remote:        Collecting pytz (from chatterbot)
remote:          Downloading https://files.pythonhosted.org/packages/4f/a4/879454d49688e2fad93e59d7d4efda580b783c745fd2ec2a3adf87b0808d/pytz-2020.1-py2.py3-none-any.whl (510kB)
remote:        Collecting click (from nltk<4.0,>=3.2->chatterbot)
remote:          Downloading https://files.pythonhosted.org/packages/d2/3d/fa76db83bf75c4f8d338c2fd15c8d33fdd7ad23a9b5e57eb6c5de26b430e/click-7.1.2-py2.py3-none-any.whl (82kB)
remote:        Collecting joblib (from nltk<4.0,>=3.2->chatterbot)
remote:          Downloading https://files.pythonhosted.org/packages/b8/a6/d1a816b89aa1e9e96bcb298eb1ee1854f21662ebc6d55ffa3d7b3b50122b/joblib-0.15.1-py3-none-any.whl (298kB)
remote:        Collecting regex (from nltk<4.0,>=3.2->chatterbot)
remote:          Downloading https://files.pythonhosted.org/packages/8e/0a/6c702a8bb8fd025306b5109130f8e3489ba48b49033b37ca9e1227ec1b02/regex-2020.6.8-cp38-cp38-manylinux1_x86_64.whl (673kB)
remote:        Collecting tqdm (from nltk<4.0,>=3.2->chatterbot)
remote:          Downloading https://files.pythonhosted.org/packages/f3/76/4697ce203a3d42b2ead61127b35e5fcc26bba9a35c03b32a2bd342a4c869/tqdm-4.46.1-py2.py3-none-any.whl (63kB)
remote:        Requirement already satisfied: setuptools in ./.heroku/python/lib/python3.8/site-packages (from pint>=0.8.1->chatterbot)
remote:        Requirement already satisfied: six>=1.5 in ./.heroku/python/lib/python3.8/site-packages (from python-dateutil<2.9,>=2.8->chatterbot)
remote:        Collecting numpy>=1.15.0 (from spacy<2.2,>=2.1->chatterbot)
remote:          Downloading https://files.pythonhosted.org/packages/01/c6/87592f924246da1e58673cf708a2748754517c5cf050726238d6cfbd8df4/numpy-1.18.5-cp38-cp38-manylinux1_x86_64.whl (20.6MB)
remote:        Collecting murmurhash<1.1.0,>=0.28.0 (from spacy<2.2,>=2.1->chatterbot)
remote:          Downloading https://files.pythonhosted.org/packages/20/2d/798d60fdfdf4fcc16b9c73d9450183fb61fdb89e8d475fa94d07edfcd3b7/murmurhash-1.0.2-cp38-cp38-manylinux1_x86_64.whl
remote:        Collecting cymem<2.1.0,>=2.0.2 (from spacy<2.2,>=2.1->chatterbot)
remote:          Downloading https://files.pythonhosted.org/packages/41/2d/d24b1b980da72883a6a8dc5f9bdf48bcb892f3ac1579fb300045771693c3/cymem-2.0.3-cp38-cp38-manylinux1_x86_64.whl
remote:        Collecting preshed<2.1.0,>=2.0.1 (from spacy<2.2,>=2.1->chatterbot)
remote:          Downloading https://files.pythonhosted.org/packages/0b/14/c9aa735cb9c131545fc9e23031baccb87041ac9215b3d75f99e3cf18f6a3/preshed-2.0.1.tar.gz (113kB)
remote:        Collecting thinc<7.1.0,>=7.0.8 (from spacy<2.2,>=2.1->chatterbot)
remote:          Downloading https://files.pythonhosted.org/packages/92/39/ea2a3d5b87fd52fc865fd1ceb7b91dca1f85e227d53e7a086d260f6bcb93/thinc-7.0.8.tar.gz (1.9MB)
remote:        Collecting blis<0.3.0,>=0.2.2 (from spacy<2.2,>=2.1->chatterbot)
remote:          Downloading https://files.pythonhosted.org/packages/59/9e/84a83616cbe5daa94909da38b780e93bf566dc2113c3dc35d7b4cad52f63/blis-0.2.4.tar.gz (1.5MB)
remote:        Collecting plac<1.0.0,>=0.9.6 (from spacy<2.2,>=2.1->chatterbot)
remote:          Downloading https://files.pythonhosted.org/packages/9e/9b/62c60d2f5bc135d2aa1d8c8a86aaf84edb719a59c7f11a4316259e61a298/plac-0.9.6-py2.py3-none-any.whl
remote:        Collecting requests<3.0.0,>=2.13.0 (from spacy<2.2,>=2.1->chatterbot)
remote:          Downloading https://files.pythonhosted.org/packages/1a/70/1935c770cb3be6e3a8b78ced23d7e0f3b187f5cbfab4749523ed65d7c9b1/requests-2.23.0-py2.py3-none-any.whl (58kB)
remote:        Collecting wasabi<1.1.0,>=0.2.0 (from spacy<2.2,>=2.1->chatterbot)
remote:          Downloading https://files.pythonhosted.org/packages/21/e1/e4e7b754e6be3a79c400eb766fb34924a6d278c43bb828f94233e0124a21/wasabi-0.6.0-py3-none-any.whl
remote:        Collecting srsly<1.1.0,>=0.0.6 (from spacy<2.2,>=2.1->chatterbot)
remote:          Downloading https://files.pythonhosted.org/packages/1e/18/eff2f26419bf99a0a18acfe287d98a0bedb1a65618f86bdbe95c5acd580b/srsly-1.0.2-cp38-cp38-manylinux1_x86_64.whl (185kB)
remote:        Requirement already satisfied: certifi>=2017.4.17 in ./.heroku/python/lib/python3.8/site-packages (from requests<3.0.0,>=2.13.0->spacy<2.2,>=2.1->chatterbot)
remote:        Collecting chardet<4,>=3.0.2 (from requests<3.0.0,>=2.13.0->spacy<2.2,>=2.1->chatterbot)
remote:          Downloading https://files.pythonhosted.org/packages/bc/a9/01ffebfb562e4274b6487b4bb1ddec7ca55ec7510b22e4c51f14098443b8/chardet-3.0.4-py2.py3-none-any.whl (133kB)
remote:        Collecting urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 (from requests<3.0.0,>=2.13.0->spacy<2.2,>=2.1->chatterbot)
remote:          Downloading https://files.pythonhosted.org/packages/e1/e5/df302e8017440f111c11cc41a6b432838672f5a70aa29227bf58149dc72f/urllib3-1.25.9-py2.py3-none-any.whl (126kB)
remote:        Collecting idna<3,>=2.5 (from requests<3.0.0,>=2.13.0->spacy<2.2,>=2.1->chatterbot)
remote:          Downloading https://files.pythonhosted.org/packages/89/e3/afebe61c546d18fb1709a61bee788254b40e736cff7271c7de5de2dc4128/idna-2.9-py2.py3-none-any.whl (58kB)
remote:        Building wheels for collected packages: nltk, pyyaml, spacy, preshed, thinc, blis
remote:          Running setup.py bdist_wheel for nltk: started
remote:          Running setup.py bdist_wheel for nltk: finished with status 'done'
remote:          Stored in directory: /app/.cache/pip/wheels/ae/8c/3f/b1fe0ba04555b08b57ab52ab7f86023639a526d8bc8d384306
remote:          Running setup.py bdist_wheel for pyyaml: started
remote:          Running setup.py bdist_wheel for pyyaml: finished with status 'done'
remote:          Stored in directory: /app/.cache/pip/wheels/a7/c1/ea/cf5bd31012e735dc1dfea3131a2d5eae7978b251083d6247bd
remote:          Running setup.py bdist_wheel for spacy: started
remote:          Running setup.py bdist_wheel for spacy: still running...
remote:          Running setup.py bdist_wheel for spacy: still running...
remote:          Running setup.py bdist_wheel for spacy: still running...
remote:          Running setup.py bdist_wheel for spacy: still running...
remote:          Running setup.py bdist_wheel for spacy: finished with status 'done'
remote:          Stored in directory: /app/.cache/pip/wheels/08/fe/7f/19f370eb24ed7d428a7531429b20e6ea9195f320209a2295d8
remote:          Running setup.py bdist_wheel for preshed: started
remote:          Running setup.py bdist_wheel for preshed: finished with status 'done'
remote:          Stored in directory: /app/.cache/pip/wheels/22/66/7a/672369bfbf391c645f57e937786f7a9c1ed4f225a4a73b0673
remote:          Running setup.py bdist_wheel for thinc: started
remote:          Running setup.py bdist_wheel for thinc: finished with status 'done'
remote:          Stored in directory: /app/.cache/pip/wheels/f2/32/f0/fe1467f30fde6dd38ef58010310d2f114b99db79391ff8c0cb
remote:          Running setup.py bdist_wheel for blis: started
remote:          Running setup.py bdist_wheel for blis: still running...
remote:          Running setup.py bdist_wheel for blis: still running...
remote:          Running setup.py bdist_wheel for blis: still running...
remote:          Running setup.py bdist_wheel for blis: finished with status 'done'
remote:          Stored in directory: /app/.cache/pip/wheels/06/4a/3f/264f84e713c1e95acfcdb144f46cda3807ab314a864944690e
remote:        Successfully built nltk pyyaml spacy preshed thinc blis
remote:        Installing collected packages: mathparse, click, joblib, regex, tqdm, nltk, pint, python-dateutil, pyyaml, numpy, murmurhash, cymem, preshed, blis, wasabi, srsly, plac, thinc, chardet, urllib3, idna, requests, spacy, sqlalchemy, pytz, chatterbot
remote:          Running setup.py develop for chatterbot
remote:        Successfully installed blis-0.2.4 chardet-3.0.4 chatterbot click-7.1.2 cymem-2.0.3 idna-2.9 joblib-0.15.1 mathparse-0.1.2 murmurhash-1.0.2 nltk-3.5 numpy-1.18.5 pint-0.12 plac-0.9.6 preshed-2.0.1 python-dateutil-2.8.1 pytz-2020.1 pyyaml-5.3.1 regex-2020.6.8 requests-2.23.0 spacy-2.1.9 sqlalchemy-1.3.17 srsly-1.0.2 thinc-7.0.8 tqdm-4.46.1 urllib3-1.25.9 wasabi-0.6.0
remote:        
remote:        Adding -e git+https://github.com/mmoore7/ChatterBot.git#egg=chatterbot to Pipfile's [packages]…
remote:        Creating a virtualenv for this project…
remote:        Using /app/.heroku/python/bin/python (3.8.3) to create virtualenv…
remote:        created virtual environment CPython3.8.3.final.0-64 in 792ms
remote:          creator CPython3Posix(dest=/app/.local/share/virtualenvs/build_71e6813d471b0b6c3faf122c18c08200-75mJ028V, clear=False, global=False)
remote:          seeder FromAppData(download=False, pip=latest, setuptools=latest, wheel=latest, via=copy, app_data_dir=/app/.local/share/virtualenv/seed-app-data/v1.0.1)
remote:          activators BashActivator,CShellActivator,FishActivator,PowerShellActivator,PythonActivator,XonshActivator
remote:        
remote:        Virtualenv location: /app/.local/share/virtualenvs/build_71e6813d471b0b6c3faf122c18c08200-75mJ028V
remote:        Installing dependencies from Pipfile.lock (afd0bd)…
remote:        WARNING: Invalid fragment string egg=en-core-web-sm==2.1.0
remote:        ABORTING INSTALL... You will have to reinstall any packages that failed to install.
remote:        You may have to manually run pipenv lock when you are finished.
remote:  !     Push rejected, failed to compile Python app.
remote: 
remote:  !     Push failed
remote: Verifying deploy...
remote: 
remote: !       Push rejected to captain-hp-bot.
remote: 
To https://git.heroku.com/captain-hp-bot.git
 ! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'https://git.heroku.com/captain-hp-bot.git'

所以我认为pipenv版本是失败的原因。它使用的版本中存在一个错误,该错误阻止了应用程序的编译。解决方案是使用 requirements.txt 所以 heroku 使用 pip 代替。即使在清除应用程序的缓存后,它仍然会使用来自某个地方的 Pipfile,因此销毁应用程序并使用 requirements.txt 文件重新创建它解决了这个问题。