Push отклонено, не удалось скомпилировать приложение Python, pythonnet: завершено со статусом «ошибка» - PullRequest
0 голосов
/ 07 июля 2019

Я пытаюсь развернуть свое веб-приложение на основе Python в Heroku, но получаю эту ошибку:

error: option --single-version-externally-managed not recognized

Я попытался обновить setuptools и wheel, но это все еще происходит.

Вот полное сообщение об ошибке:

Running setup.py install for pythonnet: started
remote:            Running setup.py install for pythonnet: finished  with status 'error'
remote:            Complete output from command /app/.heroku/python/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-6ls167h_/pythonnet/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-hdv3d_au-record/install-record.txt --single-version-externally-managed --compile:
remote:            usage: -c [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
remote:               or: -c --help [cmd1 cmd2 ...]
remote:               or: -c --help-commands
remote:               or: -c cmd --help
remote:
remote:            error: option --single-version-externally-managed not recognized

Вот мой requirements.txt:

altgraph==0.16.1
astroid==2.2.5
atomicwrites==1.3.0
attrs==19.1.0
autopep8==1.4.4
beautifulsoup4==4.7.1
bs4==0.0.1
certifi==2019.6.16
chardet==3.0.4
chicken==0.1.0
Click==7.0
colorama==0.4.1
Django==2.2.1
dominate==2.3.5
egg==0.2.0
entrypoints==0.3
eyeD3==0.8.10
flake8==3.7.7
Flask==1.0.3
Flask-Bootstrap4==4.0.2
Flask-WTF==0.14.2
future==0.17.1
gunicorn==19.9.0
idna==2.8
importlib-metadata==0.18
isort==4.3.21
itsdangerous==1.1.0
Jinja2==2.10.1
lazy-object-proxy==1.4.1
lxml==4.3.4
macholib==1.11
MarkupSafe==1.1.1
mccabe==0.6.1
more-itertools==7.0.0
packaging==19.0
pefile==2019.4.18
pluggy==0.12.0
py==1.8.0
pycodestyle==2.5.0
pyflakes==2.1.1
PyInstaller==3.4
pylint==2.3.1
pymessenger==0.0.7.0
pyparsing==2.4.0
pytest==4.6.3
python-magic==0.4.15
pythonnet==2.4.0
pytube==9.5.1
pytz==2019.1
pywebview==2.4
pywin32-ctypes==0.2.0
requests==2.22.0
requests-toolbelt==0.9.1
six==1.12.0
soupsieve==1.9.2
spotify-downloader==0.4.2
spotipy==2.4.4
sqlparse==0.3.0
typed-ast==1.4.0
urllib3==1.25.3
virtualenv==16.6.0
visitor==0.1.3
wcwidth==0.1.7
Werkzeug==0.15.4
wrapt==1.11.2
WTForms==2.2.1
zipp==0.5.1

А вот и мой Procfile:

web: gunicorn app:app

1 Ответ

0 голосов
/ 07 июля 2019

Вообще говоря, рекомендуется использовать виртуальные среды для изоляции зависимостей одного приложения от других. Судя по содержанию вашего requirements.txt, я подозреваю, что вы этого не делаете.

pywin32 определенно не будет работать на Heroku, так как он не работает под Windows. pythonnet может использоваться в Heroku, но для него потребуется как минимум пользовательский пакет сборки, поскольку Heroku официально не поддерживает .NET . Если они вам действительно не нужны для этого приложения, удалите их из requirements.txt и снова разверните.

В идеале вы также должны удалить любые другие библиотеки, которые вам на самом деле не нужны, но до тех пор, пока они работают на Heroku, они не должны вызывать ошибки развертывания.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...