title: Herokuapp fails to compile
body: <p>My app has compiled before, but now when I attempt to push new changes, it gives a warning of invalid fragment for a spacy model language package:</p>
  
  <pre><code>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.
  
  </code></pre>
  
  <p>Here is my pipfile:</p>
  
  <pre><code>[[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"
  
  </code></pre>
  
  <p>I think it has to do with the version of pipenv it's using to install the packages, which is version 2018.5.18. I had an with that exact package on an older version of pipenv (can't quite remember which version but it's a recent one), which I traced to this issue: <a href="https://github.com/pypa/pipenv/issues/4298" rel="nofollow noreferrer">Issue #4318</a>. It was fixed in the latest version, which I'm now using on my machine, version 2020.6.2.</p>
  
  <p>If this is the issue, how can I get it to use an update version of pipenv to complete the compilation? Or is my syntax wrong in the pipfile for that package (it's been fine that way for awhile).</p>
  
  <p>I tried clearing the cache and then pushing, but I still get the same error. </p>
  
  <p>Here's the whole log:</p>
  
  <pre><code>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: -----&gt; Python app detected
  remote: -----&gt; Installing python-3.8.3
  remote: -----&gt; Installing pip
  remote: -----&gt; 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&lt;0.2,&gt;=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&lt;4.0,&gt;=3.2 (from chatterbot)
  remote:          Downloading https://files.pythonhosted.org/packages/92/75/ce35194d8e3022203cca0d2f896dbb88689f9b3fce8e9f9cff942913519d/nltk-3.5.zip (1.4MB)
  remote:        Collecting pint&gt;=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&lt;2.9,&gt;=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&lt;5.4,&gt;=5.3 (from chatterbot)
  remote:          Downloading https://files.pythonhosted.org/packages/64/c2/b80047c7ac2478f9501676c988a5411ed5572f35d1beff9cae07d321512c/PyYAML-5.3.1.tar.gz (269kB)
  remote:        Collecting spacy&lt;2.2,&gt;=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&lt;1.4,&gt;=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&lt;4.0,&gt;=3.2-&gt;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&lt;4.0,&gt;=3.2-&gt;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&lt;4.0,&gt;=3.2-&gt;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&lt;4.0,&gt;=3.2-&gt;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&gt;=0.8.1-&gt;chatterbot)
  remote:        Requirement already satisfied: six&gt;=1.5 in ./.heroku/python/lib/python3.8/site-packages (from python-dateutil&lt;2.9,&gt;=2.8-&gt;chatterbot)
  remote:        Collecting numpy&gt;=1.15.0 (from spacy&lt;2.2,&gt;=2.1-&gt;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&lt;1.1.0,&gt;=0.28.0 (from spacy&lt;2.2,&gt;=2.1-&gt;chatterbot)
  remote:          Downloading https://files.pythonhosted.org/packages/20/2d/798d60fdfdf4fcc16b9c73d9450183fb61fdb89e8d475fa94d07edfcd3b7/murmurhash-1.0.2-cp38-cp38-manylinux1_x86_64.whl
  remote:        Collecting cymem&lt;2.1.0,&gt;=2.0.2 (from spacy&lt;2.2,&gt;=2.1-&gt;chatterbot)
  remote:          Downloading https://files.pythonhosted.org/packages/41/2d/d24b1b980da72883a6a8dc5f9bdf48bcb892f3ac1579fb300045771693c3/cymem-2.0.3-cp38-cp38-manylinux1_x86_64.whl
  remote:        Collecting preshed&lt;2.1.0,&gt;=2.0.1 (from spacy&lt;2.2,&gt;=2.1-&gt;chatterbot)
  remote:          Downloading https://files.pythonhosted.org/packages/0b/14/c9aa735cb9c131545fc9e23031baccb87041ac9215b3d75f99e3cf18f6a3/preshed-2.0.1.tar.gz (113kB)
  remote:        Collecting thinc&lt;7.1.0,&gt;=7.0.8 (from spacy&lt;2.2,&gt;=2.1-&gt;chatterbot)
  remote:          Downloading https://files.pythonhosted.org/packages/92/39/ea2a3d5b87fd52fc865fd1ceb7b91dca1f85e227d53e7a086d260f6bcb93/thinc-7.0.8.tar.gz (1.9MB)
  remote:        Collecting blis&lt;0.3.0,&gt;=0.2.2 (from spacy&lt;2.2,&gt;=2.1-&gt;chatterbot)
  remote:          Downloading https://files.pythonhosted.org/packages/59/9e/84a83616cbe5daa94909da38b780e93bf566dc2113c3dc35d7b4cad52f63/blis-0.2.4.tar.gz (1.5MB)
  remote:        Collecting plac&lt;1.0.0,&gt;=0.9.6 (from spacy&lt;2.2,&gt;=2.1-&gt;chatterbot)
  remote:          Downloading https://files.pythonhosted.org/packages/9e/9b/62c60d2f5bc135d2aa1d8c8a86aaf84edb719a59c7f11a4316259e61a298/plac-0.9.6-py2.py3-none-any.whl
  remote:        Collecting requests&lt;3.0.0,&gt;=2.13.0 (from spacy&lt;2.2,&gt;=2.1-&gt;chatterbot)
  remote:          Downloading https://files.pythonhosted.org/packages/1a/70/1935c770cb3be6e3a8b78ced23d7e0f3b187f5cbfab4749523ed65d7c9b1/requests-2.23.0-py2.py3-none-any.whl (58kB)
  remote:        Collecting wasabi&lt;1.1.0,&gt;=0.2.0 (from spacy&lt;2.2,&gt;=2.1-&gt;chatterbot)
  remote:          Downloading https://files.pythonhosted.org/packages/21/e1/e4e7b754e6be3a79c400eb766fb34924a6d278c43bb828f94233e0124a21/wasabi-0.6.0-py3-none-any.whl
  remote:        Collecting srsly&lt;1.1.0,&gt;=0.0.6 (from spacy&lt;2.2,&gt;=2.1-&gt;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&gt;=2017.4.17 in ./.heroku/python/lib/python3.8/site-packages (from requests&lt;3.0.0,&gt;=2.13.0-&gt;spacy&lt;2.2,&gt;=2.1-&gt;chatterbot)
  remote:        Collecting chardet&lt;4,&gt;=3.0.2 (from requests&lt;3.0.0,&gt;=2.13.0-&gt;spacy&lt;2.2,&gt;=2.1-&gt;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,&lt;1.26,&gt;=1.21.1 (from requests&lt;3.0.0,&gt;=2.13.0-&gt;spacy&lt;2.2,&gt;=2.1-&gt;chatterbot)
  remote:          Downloading https://files.pythonhosted.org/packages/e1/e5/df302e8017440f111c11cc41a6b432838672f5a70aa29227bf58149dc72f/urllib3-1.25.9-py2.py3-none-any.whl (126kB)
  remote:        Collecting idna&lt;3,&gt;=2.5 (from requests&lt;3.0.0,&gt;=2.13.0-&gt;spacy&lt;2.2,&gt;=2.1-&gt;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 -&gt; master (pre-receive hook declined)
  error: failed to push some refs to 'https://git.heroku.com/captain-hp-bot.git'
  
  </code></pre>