由于 PyWin32,无法将 Django 应用程序部署到 Heroku
Posted
技术标签:
【中文标题】由于 PyWin32,无法将 Django 应用程序部署到 Heroku【英文标题】:Unable to Deploy Django App to Heroku because of PyWin32 【发布时间】:2021-12-25 17:27:02 【问题描述】:所以我浏览了论坛寻找答案,但没有找到适合我的答案。 我使用的是 Windows 机器,我的 Django 应用程序在 Localhost 上运行,但是当我尝试将相同的应用程序部署到 Heroku 时,它给了我这个错误。
INFO: pip is looking at multiple versions of anyio to determine which version is compatible with other requirements. This could take a while.
remote: ERROR: Could not find a version that satisfies the requirement pywin32>=223 (from pypiwin32) (from versions: none)
remote: ERROR: No matching distribution found for pywin32>=223
remote: ! Push rejected, failed to compile Python app.
我已经从 requirements.txt 文件中删除了pywin32
,但是当我运行
git push heroku master
命令,我一直收到同样的错误。
我还尝试将所有源代码复制到一个新文件夹中,并删除了最初的 git
文件并重新初始化了 Git,但似乎仍然没有任何效果。
我读过的没有帮助的论坛文章包括:
Could not find a version that satisfies the requirement pywin32==227 heroku Heroku fails to install pywin32 library请允许我附上我的完整error log
:
Enumerating objects: 268, done.
Counting objects: 100% (268/268), done.
Delta compression using up to 8 threads
Compressing objects: 100% (259/259), done.
Writing objects: 100% (268/268), 377.32 KiB | 4.49 MiB/s, done.
Total 268 (delta 147), reused 0 (delta 0), pack-reused 0
remote: Compressing source files... done.
remote: Building source:
remote:
remote: -----> Building on the Heroku-20 stack
remote: -----> Determining which buildpack to use for this app
remote: -----> Python app detected
remote: -----> No Python version was specified. Using the buildpack default: python-3.9.8
remote: To use a different version, see: https://devcenter.heroku.com/articles/python-runtimes
remote: -----> Installing python-3.9.8
remote: -----> Installing pip 21.3.1, setuptools 57.5.0 and wheel 0.37.0
remote: -----> Installing SQLite3
remote: -----> Installing requirements with pip
remote: Ignoring pywin32: markers 'platform_system == "Windows"' don't match your environment
remote: Collecting anyio==3.3.0
remote: Downloading anyio-3.3.0-py3-none-any.whl (77 kB)
remote: Collecting argon2-cffi==20.1.0
remote: Downloading argon2_cffi-20.1.0-cp35-abi3-manylinux1_x86_64.whl (97 kB)
remote: Collecting asgiref==3.4.1
remote: Downloading asgiref-3.4.1-py3-none-any.whl (25 kB)
remote: Collecting attrs==21.2.0
remote: Downloading attrs-21.2.0-py2.py3-none-any.whl (53 kB)
remote: Collecting autopep8==1.5.7
remote: Downloading autopep8-1.5.7-py2.py3-none-any.whl (45 kB)
remote: Collecting Babel==2.9.1
remote: Downloading Babel-2.9.1-py2.py3-none-any.whl (8.8 MB)
remote: Collecting backcall==0.2.0
remote: Downloading backcall-0.2.0-py2.py3-none-any.whl (11 kB)
remote: Collecting beautifulsoup4==4.9.3
remote: Downloading beautifulsoup4-4.9.3-py3-none-any.whl (115 kB)
remote: Collecting bleach==4.0.0
remote: Downloading bleach-4.0.0-py2.py3-none-any.whl (146 kB)
remote: Collecting branca==0.4.2
remote: Downloading branca-0.4.2-py3-none-any.whl (24 kB)
remote: Collecting certifi==2021.5.30
remote: Downloading certifi-2021.5.30-py2.py3-none-any.whl (145 kB)
remote: Collecting cffi==1.14.6
remote: Downloading cffi-1.14.6-cp39-cp39-manylinux1_x86_64.whl (405 kB)
remote: Collecting charset-normalizer==2.0.4
remote: Downloading charset_normalizer-2.0.4-py3-none-any.whl (36 kB)
remote: Collecting click==8.0.1
remote: Downloading click-8.0.1-py3-none-any.whl (97 kB)
remote: Collecting click-plugins==1.1.1
remote: Downloading click_plugins-1.1.1-py2.py3-none-any.whl (7.5 kB)
remote: Collecting cligj==0.7.2
remote: Downloading cligj-0.7.2-py3-none-any.whl (7.1 kB)
remote: Collecting colorama==0.4.4
remote: Downloading colorama-0.4.4-py2.py3-none-any.whl (16 kB)
remote: Collecting cryptography==3.4.7
remote: Downloading cryptography-3.4.7-cp36-abi3-manylinux2014_x86_64.whl (3.2 MB)
remote: Collecting cycler==0.10.0
remote: Downloading cycler-0.10.0-py2.py3-none-any.whl (6.5 kB)
remote: Collecting debugpy==1.4.1
remote: Downloading debugpy-1.4.1-cp39-cp39-manylinux2014_x86_64.whl (4.5 MB)
remote: Collecting decorator==5.0.9
remote: Downloading decorator-5.0.9-py3-none-any.whl (8.9 kB)
remote: Collecting defusedxml==0.7.1
remote: Downloading defusedxml-0.7.1-py2.py3-none-any.whl (25 kB)
remote: Collecting dj-database-url==0.5.0
remote: Downloading dj_database_url-0.5.0-py2.py3-none-any.whl (5.5 kB)
remote: Collecting Django==3.2.9
remote: Downloading Django-3.2.9-py3-none-any.whl (7.9 MB)
remote: Collecting django-crispy-forms==1.12.0
remote: Downloading django_crispy_forms-1.12.0-py3-none-any.whl (122 kB)
remote: Collecting django-heroku==0.3.1
remote: Downloading django_heroku-0.3.1-py2.py3-none-any.whl (6.2 kB)
remote: Collecting django-taggit==1.5.1
remote: Downloading django_taggit-1.5.1-py3-none-any.whl (53 kB)
remote: Collecting docopt==0.6.2
remote: Downloading docopt-0.6.2.tar.gz (25 kB)
remote: Preparing metadata (setup.py): started
remote: Preparing metadata (setup.py): finished with status 'done'
remote: Collecting entrypoints==0.3
remote: Downloading entrypoints-0.3-py2.py3-none-any.whl (11 kB)
remote: Collecting folium==0.12.1
remote: Downloading folium-0.12.1-py2.py3-none-any.whl (94 kB)
remote: Collecting future==0.18.2
remote: Downloading future-0.18.2.tar.gz (829 kB)
remote: Preparing metadata (setup.py): started
remote: Preparing metadata (setup.py): finished with status 'done'
remote: Collecting geocoder==1.38.1
remote: Downloading geocoder-1.38.1-py2.py3-none-any.whl (98 kB)
remote: Collecting geographiclib==1.52
remote: Downloading geographiclib-1.52-py3-none-any.whl (38 kB)
remote: Collecting geopy==2.2.0
remote: Downloading geopy-2.2.0-py3-none-any.whl (118 kB)
remote: Collecting gunicorn==20.1.0
remote: Downloading gunicorn-20.1.0-py3-none-any.whl (79 kB)
remote: Collecting idna==3.2
remote: Downloading idna-3.2-py3-none-any.whl (59 kB)
remote: Collecting importlib-metadata==4.6.4
remote: Downloading importlib_metadata-4.6.4-py3-none-any.whl (17 kB)
remote: Collecting ipykernel==6.2.0
remote: Downloading ipykernel-6.2.0-py3-none-any.whl (122 kB)
remote: Collecting ipython==7.26.0
remote: Downloading ipython-7.26.0-py3-none-any.whl (786 kB)
remote: Collecting ipython-genutils==0.2.0
remote: Downloading ipython_genutils-0.2.0-py2.py3-none-any.whl (26 kB)
remote: Collecting ipywidgets==7.6.3
remote: Downloading ipywidgets-7.6.3-py2.py3-none-any.whl (121 kB)
remote: Collecting jedi==0.18.0
remote: Downloading jedi-0.18.0-py2.py3-none-any.whl (1.4 MB)
remote: Collecting Jinja2==3.0.1
remote: Downloading Jinja2-3.0.1-py3-none-any.whl (133 kB)
remote: Collecting Js2Py==0.71
remote: Downloading Js2Py-0.71-py3-none-any.whl (1.0 MB)
remote: Collecting json5==0.9.6
remote: Downloading json5-0.9.6-py2.py3-none-any.whl (18 kB)
remote: Collecting jsonschema==3.2.0
remote: Downloading jsonschema-3.2.0-py2.py3-none-any.whl (56 kB)
remote: Collecting jupyter-client==7.0.1
remote: Downloading jupyter_client-7.0.1-py3-none-any.whl (122 kB)
remote: Collecting jupyter-core==4.7.1
remote: Downloading jupyter_core-4.7.1-py3-none-any.whl (82 kB)
remote: Collecting jupyter-server==1.10.2
remote: Downloading jupyter_server-1.10.2-py3-none-any.whl (392 kB)
remote: Collecting jupyterlab==3.1.7
remote: Downloading jupyterlab-3.1.7-py3-none-any.whl (8.5 MB)
remote: Collecting jupyterlab-pygments==0.1.2
remote: Downloading jupyterlab_pygments-0.1.2-py2.py3-none-any.whl (4.6 kB)
remote: Collecting jupyterlab-server==2.7.2
remote: Downloading jupyterlab_server-2.7.2-py3-none-any.whl (55 kB)
remote: Collecting jupyterlab-widgets==1.0.0
remote: Downloading jupyterlab_widgets-1.0.0-py3-none-any.whl (243 kB)
remote: Collecting keyring==23.1.0
remote: Downloading keyring-23.1.0-py3-none-any.whl (32 kB)
remote: Collecting kiwisolver==1.3.1
remote: Downloading kiwisolver-1.3.1-cp39-cp39-manylinux1_x86_64.whl (1.2 MB)
remote: Collecting lerc==0.1.0
remote: Downloading lerc-0.1.0.tar.gz (567 kB)
remote: Preparing metadata (setup.py): started
remote: Preparing metadata (setup.py): finished with status 'done'
remote: Collecting MarkupSafe==2.0.1
remote: Downloading MarkupSafe-2.0.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl (30 kB)
remote: Collecting matplotlib==3.4.3
remote: Downloading matplotlib-3.4.3-cp39-cp39-manylinux1_x86_64.whl (10.3 MB)
remote: Collecting matplotlib-inline==0.1.2
remote: Downloading matplotlib_inline-0.1.2-py3-none-any.whl (8.2 kB)
remote: Collecting mistune==0.8.4
remote: Downloading mistune-0.8.4-py2.py3-none-any.whl (16 kB)
remote: Collecting munch==2.5.0
remote: Downloading munch-2.5.0-py2.py3-none-any.whl (10 kB)
remote: Collecting nbclassic==0.3.1
remote: Downloading nbclassic-0.3.1-py3-none-any.whl (18 kB)
remote: Collecting nbclient==0.5.4
remote: Downloading nbclient-0.5.4-py3-none-any.whl (66 kB)
remote: Collecting nbconvert==6.1.0
remote: Downloading nbconvert-6.1.0-py3-none-any.whl (551 kB)
remote: Collecting nbformat==5.1.3
remote: Downloading nbformat-5.1.3-py3-none-any.whl (178 kB)
remote: Collecting nest-asyncio==1.5.1
remote: Downloading nest_asyncio-1.5.1-py3-none-any.whl (5.0 kB)
remote: Collecting notebook==6.4.3
remote: Downloading notebook-6.4.3-py3-none-any.whl (9.9 MB)
remote: Collecting ntlm-auth==1.5.0
remote: Downloading ntlm_auth-1.5.0-py2.py3-none-any.whl (29 kB)
remote: Collecting numpy==1.21.4
remote: Downloading numpy-1.21.4-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (15.7 MB)
remote: Collecting oauthlib==3.1.1
remote: Downloading oauthlib-3.1.1-py2.py3-none-any.whl (146 kB)
remote: Collecting packaging==21.0
remote: Downloading packaging-21.0-py3-none-any.whl (40 kB)
remote: Collecting pandas==1.3.2
remote: Downloading pandas-1.3.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (11.5 MB)
remote: Collecting pandocfilters==1.4.3
remote: Downloading pandocfilters-1.4.3.tar.gz (16 kB)
remote: Preparing metadata (setup.py): started
remote: Preparing metadata (setup.py): finished with status 'done'
remote: Collecting parso==0.8.2
remote: Downloading parso-0.8.2-py2.py3-none-any.whl (94 kB)
remote: Collecting pickleshare==0.7.5
remote: Downloading pickleshare-0.7.5-py2.py3-none-any.whl (6.9 kB)
remote: Collecting Pillow==8.3.1
remote: Downloading Pillow-8.3.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl (3.0 MB)
remote: Collecting prometheus-client==0.11.0
remote: Downloading prometheus_client-0.11.0-py2.py3-none-any.whl (56 kB)
remote: Collecting prompt-toolkit==3.0.20
remote: Downloading prompt_toolkit-3.0.20-py3-none-any.whl (370 kB)
remote: Collecting psycopg2==2.9.1
remote: Downloading psycopg2-2.9.1.tar.gz (379 kB)
remote: Preparing metadata (setup.py): started
remote: Preparing metadata (setup.py): finished with status 'done'
remote: Collecting psycopg2-binary==2.9.1
remote: Downloading psycopg2_binary-2.9.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.4 MB)
remote: Collecting pycodestyle==2.7.0
remote: Downloading pycodestyle-2.7.0-py2.py3-none-any.whl (41 kB)
remote: Collecting pycparser==2.20
remote: Downloading pycparser-2.20-py2.py3-none-any.whl (112 kB)
remote: Collecting Pygments==2.10.0
remote: Downloading Pygments-2.10.0-py3-none-any.whl (1.0 MB)
remote: Collecting pyjsparser==2.7.1
remote: Downloading pyjsparser-2.7.1.tar.gz (24 kB)
remote: Preparing metadata (setup.py): started
remote: Preparing metadata (setup.py): finished with status 'done'
remote: Collecting pyparsing==2.4.7
remote: Downloading pyparsing-2.4.7-py2.py3-none-any.whl (67 kB)
remote: Collecting PyPrind==2.11.3
remote: Downloading PyPrind-2.11.3-py2.py3-none-any.whl (8.4 kB)
remote: Collecting pyproj==3.1.0
remote: Downloading pyproj-3.1.0-cp39-cp39-manylinux2010_x86_64.whl (6.6 MB)
remote: Collecting pyrsistent==0.18.0
remote: Downloading pyrsistent-0.18.0-cp39-cp39-manylinux1_x86_64.whl (117 kB)
remote: Collecting pyshp==2.1.3
remote: Downloading pyshp-2.1.3.tar.gz (219 kB)
remote: Preparing metadata (setup.py): started
remote: Preparing metadata (setup.py): finished with status 'done'
remote: Collecting pySmartDL==1.3.4
remote: Downloading pySmartDL-1.3.4-py3-none-any.whl (20 kB)
remote: Collecting python-dateutil==2.8.2
remote: Downloading python_dateutil-2.8.2-py2.py3-none-any.whl (247 kB)
remote: Collecting python-decouple==3.4
remote: Downloading python_decouple-3.4-py3-none-any.whl (9.5 kB)
remote: Collecting pytz==2021.1
remote: Downloading pytz-2021.1-py2.py3-none-any.whl (510 kB)
remote: Collecting pyzmq==22.2.1
remote: Downloading pyzmq-22.2.1-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (1.1 MB)
remote: Collecting ratelim==0.1.6
remote: Downloading ratelim-0.1.6-py2.py3-none-any.whl (4.0 kB)
remote: Collecting requests==2.26.0
remote: Downloading requests-2.26.0-py2.py3-none-any.whl (62 kB)
remote: Collecting requests-kerberos==0.12.0
remote: Downloading requests_kerberos-0.12.0-py2.py3-none-any.whl (14 kB)
remote: Collecting requests-negotiate-sspi==0.5.2
remote: Downloading requests_negotiate_sspi-0.5.2-py2.py3-none-any.whl (7.1 kB)
remote: Collecting requests-ntlm==1.1.0
remote: Downloading requests_ntlm-1.1.0-py2.py3-none-any.whl (5.7 kB)
remote: Collecting requests-oauthlib==1.3.0
remote: Downloading requests_oauthlib-1.3.0-py2.py3-none-any.whl (23 kB)
remote: Collecting requests-toolbelt==0.9.1
remote: Downloading requests_toolbelt-0.9.1-py2.py3-none-any.whl (54 kB)
remote: Collecting requests-unixsocket==0.2.0
remote: Downloading requests_unixsocket-0.2.0-py2.py3-none-any.whl (11 kB)
remote: Collecting Send2Trash==1.8.0
remote: Downloading Send2Trash-1.8.0-py3-none-any.whl (18 kB)
remote: Collecting setuptools-scm==6.0.1
remote: Downloading setuptools_scm-6.0.1-py3-none-any.whl (27 kB)
remote: Collecting Shapely==1.7.1
remote: Downloading Shapely-1.7.1-1-cp39-cp39-manylinux1_x86_64.whl (1.0 MB)
remote: Collecting six==1.16.0
remote: Downloading six-1.16.0-py2.py3-none-any.whl (11 kB)
remote: Collecting sniffio==1.2.0
remote: Downloading sniffio-1.2.0-py3-none-any.whl (10 kB)
remote: Collecting soupsieve==2.2.1
remote: Downloading soupsieve-2.2.1-py3-none-any.whl (33 kB)
remote: Collecting sqlparse==0.4.1
remote: Downloading sqlparse-0.4.1-py3-none-any.whl (42 kB)
remote: Collecting terminado==0.11.1
remote: Downloading terminado-0.11.1-py3-none-any.whl (15 kB)
remote: Collecting testpath==0.5.0
remote: Downloading testpath-0.5.0-py3-none-any.whl (84 kB)
remote: Collecting toml==0.10.2
remote: Downloading toml-0.10.2-py2.py3-none-any.whl (16 kB)
remote: Collecting tornado==6.1
remote: Downloading tornado-6.1-cp39-cp39-manylinux2010_x86_64.whl (427 kB)
remote: Collecting traitlets==5.0.5
remote: Downloading traitlets-5.0.5-py3-none-any.whl (100 kB)
remote: Collecting tzdata==2021.1
remote: Downloading tzdata-2021.1-py2.py3-none-any.whl (338 kB)
remote: Collecting tzlocal==3.0
remote: Downloading tzlocal-3.0-py3-none-any.whl (16 kB)
remote: Collecting ujson==4.1.0
remote: Downloading ujson-4.1.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl (179 kB)
remote: Collecting urllib3==1.26.6
remote: Downloading urllib3-1.26.6-py2.py3-none-any.whl (138 kB)
remote: Collecting wcwidth==0.2.5
remote: Downloading wcwidth-0.2.5-py2.py3-none-any.whl (30 kB)
remote: Collecting webencodings==0.5.1
remote: Downloading webencodings-0.5.1-py2.py3-none-any.whl (11 kB)
remote: Collecting websocket-client==1.2.1
remote: Downloading websocket_client-1.2.1-py2.py3-none-any.whl (52 kB)
remote: Collecting whitenoise==5.3.0
remote: Downloading whitenoise-5.3.0-py2.py3-none-any.whl (19 kB)
remote: Collecting widgetsnbextension==3.5.1
remote: Downloading widgetsnbextension-3.5.1-py2.py3-none-any.whl (2.2 MB)
remote: Collecting winkerberos==0.8.0
remote: Downloading winkerberos-0.8.0.zip (44 kB)
remote: Preparing metadata (setup.py): started
remote: Preparing metadata (setup.py): finished with status 'done'
remote: Collecting wrapt==1.12.1
remote: Downloading wrapt-1.12.1.tar.gz (27 kB)
remote: Preparing metadata (setup.py): started
remote: Preparing metadata (setup.py): finished with status 'done'
remote: Collecting zipp==3.5.0
remote: Downloading zipp-3.5.0-py3-none-any.whl (5.7 kB)
remote: Collecting pexpect>4.3
remote: Downloading pexpect-4.8.0-py2.py3-none-any.whl (59 kB)
remote: Collecting SecretStorage>=3.2
remote: Downloading SecretStorage-3.3.1-py3-none-any.whl (15 kB)
remote: Collecting jeepney>=0.4.2
remote: Downloading jeepney-0.7.1-py3-none-any.whl (54 kB)
remote: Collecting pykerberos<2.0.0,>=1.1.8
remote: Downloading pykerberos-1.2.1.tar.gz (24 kB)
remote: Preparing metadata (setup.py): started
remote: Preparing metadata (setup.py): finished with status 'done'
remote: Collecting pypiwin32>=223
remote: Downloading pypiwin32-223-py3-none-any.whl (1.7 kB)
remote: Collecting ptyprocess
remote: Downloading ptyprocess-0.7.0-py2.py3-none-any.whl (13 kB)
remote: INFO: pip is looking at multiple versions of pykerberos to determine which version is compatible with other requirements. This could take a while.
remote: Collecting pykerberos<2.0.0,>=1.1.8
remote: Downloading pykerberos-1.1.14.tar.gz (20 kB)
remote: Preparing metadata (setup.py): started
remote: Preparing metadata (setup.py): finished with status 'done'
remote: INFO: pip is looking at multiple versions of ptyprocess to determine which version is compatible with other requirements. This could take a while.
remote: Collecting ptyprocess
remote: Downloading ptyprocess-0.6.0-py2.py3-none-any.whl (39 kB)
remote: INFO: pip is looking at multiple versions of pexpect to determine which version is compatible with other requirements. This could take a while.
remote: Collecting pexpect>4.3
remote: Downloading pexpect-4.7.0-py2.py3-none-any.whl (58 kB)
remote: INFO: pip is looking at multiple versions of jeepney to determine which version is compatible with other requirements. This could take a while.
remote: Collecting jeepney>=0.4.2
remote: Downloading jeepney-0.7.0-py3-none-any.whl (53 kB)
remote: INFO: pip is looking at multiple versions of zipp to determine which version is compatible with other requirements. This could take a while.
remote: INFO: pip is looking at multiple versions of geographiclib to determine which version is compatible with other requirements. This could take a while.
remote: INFO: pip is looking at multiple versions of geocoder to determine which version is compatible with other requirements. This could take a while.
remote: INFO: pip is looking at multiple versions of future to determine which version is compatible with other requirements. This could take a while.
remote: INFO: pip is looking at multiple versions of folium to determine which version is compatible with other requirements. This could take a while.
remote: INFO: pip is looking at multiple versions of entrypoints to determine which version is compatible with other requirements. This could take a while.
remote: INFO: pip is looking at multiple versions of docopt to determine which version is compatible with other requirements. This could take a while.
remote: INFO: pip is looking at multiple versions of django-taggit to determine which version is compatible with other requirements. This could take a while.
remote: INFO: pip is looking at multiple versions of django-heroku to determine which version is compatible with other requirements. This could take a while.
remote: INFO: pip is looking at multiple versions of django-crispy-forms to determine which version is compatible with other requirements. This could take a while.
remote: INFO: pip is looking at multiple versions of django to determine which version is compatible with other requirements. This could take a while.
remote: INFO: pip is looking at multiple versions of dj-database-url to determine which version is compatible with other requirements. This could take a while.
remote: INFO: pip is looking at multiple versions of defusedxml to determine which version is compatible with other requirements. This could take a while.
remote: INFO: pip is looking at multiple versions of decorator to determine which version is compatible with other requirements. This could take a while.
remote: INFO: pip is looking at multiple versions of debugpy to determine which version is compatible with other requirements. This could take a while.
remote: INFO: pip is looking at multiple versions of cycler to determine which version is compatible with other requirements. This could take a while.
remote: INFO: pip is looking at multiple versions of cryptography to determine which version is compatible with other requirements. This could take a while.
remote: INFO: pip is looking at multiple versions of colorama to determine which version is compatible with other requirements. This could take a while.
remote: INFO: pip is looking at multiple versions of cligj to determine which version is compatible with other requirements. This could take a while.
remote: INFO: pip is looking at multiple versions of click-plugins to determine which version is compatible with other requirements. This could take a while.
remote: INFO: pip is looking at multiple versions of click to determine which version is compatible with other requirements. This could take a while.
remote: INFO: pip is looking at multiple versions of charset-normalizer to determine which version is compatible with other requirements. This could take a while.
remote: INFO: pip is looking at multiple versions of cffi to determine which version is compatible with other requirements. This could take a while.
remote: INFO: pip is looking at multiple versions of certifi to determine which version is compatible with other requirements. This could take a while.
remote: INFO: pip is looking at multiple versions of branca to determine which version is compatible with other requirements. This could take a while.
remote: INFO: pip is looking at multiple versions of bleach to determine which version is compatible with other requirements. This could take a while.
remote: INFO: pip is looking at multiple versions of beautifulsoup4 to determine which version is compatible with other requirements. This could take a while.
remote: INFO: pip is looking at multiple versions of backcall to determine which version is compatible with other requirements. This could take a while.
remote: INFO: pip is looking at multiple versions of babel to determine which version is compatible with other requirements. This could take a while.
remote: INFO: pip is looking at multiple versions of autopep8 to determine which version is compatible with other requirements. This could take a while.
remote: INFO: pip is looking at multiple versions of attrs to determine which version is compatible with other requirements. This could take a while.
remote: INFO: pip is looking at multiple versions of asgiref to determine which version is compatible with other requirements. This could take a while.
remote: INFO: pip is looking at multiple versions of argon2-cffi to determine which version is compatible with other requirements. This could take a while.
remote: INFO: pip is looking at multiple versions of <Python from Requires-Python> to determine which version is compatible with other requirements. This could take a while.
remote: INFO: pip is looking at multiple versions of anyio to determine which version is compatible with other requirements. This could take a while.
remote: ERROR: Could not find a version that satisfies the requirement pywin32>=223 (from pypiwin32) (from versions: none)
remote: ERROR: No matching distribution found for pywin32>=223
remote: ! Push rejected, failed to compile Python app.
remote:
remote: ! Push failed
remote: !
remote: ! ## Warning - The same version of this code has already been built: 5876ebd1f6928d422590ee2bced6db875179e28e
remote: !
remote: ! We have detected that you have triggered a build from source code with version 5876ebd1f6928d422590ee2bced6db875179e28e
remote: ! at least twice. One common cause of this behavior is attempting to deploy code from a different branch.
remote: !
remote: ! If you are developing on a branch and deploying via git you must run:
remote: !
remote: ! git push heroku <branchname>:main
remote: !
remote: ! This article goes into details on the behavior:
remote: ! https://devcenter.heroku.com/articles/duplicate-build-version
remote:
remote: Verifying deploy...
remote:
remote: ! Push rejected to djangogis.
remote:
To https://git.heroku.com/djangogis.git
! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'https://git.heroku.com/djangogis.git'
然后是我的requirements file
任何可以帮助我的人,我都会非常感激。我到底哪里弄错了?
【问题讨论】:
@phd 来自问题中的 requirements.txt 文件,您能否通过说明可能导致重新安装 pywin32 的依赖项提供帮助,即使它不在 requirements.txt 文件中?我找不到它。 【参考方案1】:在您当前的requirements.txt
中,您使用环境标记platform_system == "Windows"
标记了pywin32
。我认为语法是错误的。 PEP 496 的正确语法是:
pywin32==223; sys_platform == "win32"
【讨论】:
即使我使用这种语法,我仍然遇到同样的问题。我想我的是一个主要问题,需要逐一检查需求中的所有内容,试图找出可能导致此错误的内容。 所以我设法找到了一个临时的部署方案。我在一个单独的虚拟环境中安装了 django,并收集了 django 附带的所有要求。然后我手动添加了所有导入的模块,直到应用程序完成。我想在开发过程中,有一些软件包已安装但从未使用过,工作变得杂乱无章。现在有地方开始。感谢您的帮助和时间。以上是关于由于 PyWin32,无法将 Django 应用程序部署到 Heroku的主要内容,如果未能解决你的问题,请参考以下文章
Python:通过pywin32模块批量将rtf或docx另存为doc格式