Heroku 部署 - ModuleNotFoundError:没有名为“setuptools.extern.six”的模块

问题描述 投票:0回答:1

我正在尝试将应用程序部署到 Heroku 上。这是heroku python env 输出,因为它尝试让应用程序运行。

-----> Building on the Heroku-22 stack
-----> Using buildpack: heroku/python
-----> Python app detected
-----> No Python version was specified. Using the buildpack default: python-3.12.2
       To use a different version, see: https://devcenter.heroku.com/articles/python-runtimes
-----> Installing python-3.12.2
-----> Installing pip 23.3.2, setuptools 68.2.2 and wheel 0.42.0
-----> Installing SQLite3
-----> Installing requirements with pip
       Collecting aiohttp==3.7.3 (from -r requirements.txt (line 1))
         Downloading aiohttp-3.7.3.tar.gz (1.1 MB)
         Installing build dependencies: started
         Installing build dependencies: finished with status 'done'
         Getting requirements to build wheel: started
         Getting requirements to build wheel: finished with status 'done'
         Preparing metadata (pyproject.toml): started
         Preparing metadata (pyproject.toml): finished with status 'done'
       Collecting alpha-vantage==2.3.1 (from -r requirements.txt (line 2))
         Downloading alpha_vantage-2.3.1-py3-none-any.whl.metadata (12 kB)
       Collecting appdirs==1.4.4 (from -r requirements.txt (line 3))
         Downloading appdirs-1.4.4-py2.py3-none-any.whl.metadata (9.0 kB)
       Collecting asgiref==3.4.1 (from -r requirements.txt (line 4))
         Downloading asgiref-3.4.1-py3-none-any.whl.metadata (9.2 kB)
       Collecting async-timeout==3.0.1 (from -r requirements.txt (line 5))
         Downloading async_timeout-3.0.1-py3-none-any.whl.metadata (4.0 kB)
       Collecting attrs==20.3.0 (from -r requirements.txt (line 6))
         Downloading attrs-20.3.0-py2.py3-none-any.whl.metadata (10 kB)
       Collecting beautifulsoup4==4.9.3 (from -r requirements.txt (line 7))
         Downloading beautifulsoup4-4.9.3-py3-none-any.whl.metadata (4.2 kB)
       Collecting certifi==2020.12.5 (from -r requirements.txt (line 8))
         Downloading certifi-2020.12.5-py2.py3-none-any.whl.metadata (3.0 kB)
       Collecting chardet==3.0.4 (from -r requirements.txt (line 9))
         Downloading chardet-3.0.4-py2.py3-none-any.whl.metadata (3.2 kB)
       Collecting charset-normalizer==3.3.2 (from -r requirements.txt (line 10))
         Downloading charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (33 kB)
       Collecting distlib==0.3.1 (from -r requirements.txt (line 11))
         Downloading distlib-0.3.1-py2.py3-none-any.whl.metadata (1.1 kB)
       Collecting dj-database-url==0.5.0 (from -r requirements.txt (line 12))
         Downloading dj_database_url-0.5.0-py2.py3-none-any.whl.metadata (2.7 kB)
       Collecting Django==3.2.5 (from -r requirements.txt (line 13))
         Downloading Django-3.2.5-py3-none-any.whl.metadata (3.9 kB)
       Collecting django-heroku==0.3.1 (from -r requirements.txt (line 14))
         Downloading django_heroku-0.3.1-py2.py3-none-any.whl.metadata (2.6 kB)
       Collecting django-postgrespool2==2.0.5 (from -r requirements.txt (line 15))
         Downloading django-postgrespool2-2.0.5.tar.gz (8.0 kB)
         Preparing metadata (setup.py): started
         Preparing metadata (setup.py): finished with status 'done'
       Collecting filelock==3.0.12 (from -r requirements.txt (line 16))
         Downloading filelock-3.0.12-py3-none-any.whl.metadata (4.3 kB)
       Collecting greenlet==1.1.0 (from -r requirements.txt (line 17))
         Downloading greenlet-1.1.0.tar.gz (85 kB)
         Preparing metadata (setup.py): started
         Preparing metadata (setup.py): finished with status 'done'
       Collecting idna==2.10 (from -r requirements.txt (line 18))
         Downloading idna-2.10-py2.py3-none-any.whl.metadata (9.1 kB)
       Collecting importlib-metadata==3.3.0 (from -r requirements.txt (line 19))
         Downloading importlib_metadata-3.3.0-py3-none-any.whl.metadata (3.5 kB)
       Collecting multidict==5.1.0 (from -r requirements.txt (line 20))
         Downloading multidict-5.1.0.tar.gz (53 kB)
         Installing build dependencies: started
         Installing build dependencies: finished with status 'done'
         Getting requirements to build wheel: started
         Getting requirements to build wheel: finished with status 'done'
         Preparing metadata (pyproject.toml): started
         Preparing metadata (pyproject.toml): finished with status 'done'
       Collecting numpy==1.21.0 (from -r requirements.txt (line 21))
         Downloading numpy-1.21.0.zip (10.3 MB)
         Installing build dependencies: started
         Installing build dependencies: finished with status 'done'
         Getting requirements to build wheel: started
         Getting requirements to build wheel: finished with status 'done'
       ERROR: Exception:
       Traceback (most recent call last):
         File "/app/.heroku/python/lib/python3.12/site-packages/pip/_internal/cli/base_command.py", line 180, in exc_logging_wrapper
           status = run_func(*args)
                    ^^^^^^^^^^^^^^^
         File "/app/.heroku/python/lib/python3.12/site-packages/pip/_internal/cli/req_command.py", line 245, in wrapper
           return func(self, options, args)
                  ^^^^^^^^^^^^^^^^^^^^^^^^^
         File "/app/.heroku/python/lib/python3.12/site-packages/pip/_internal/commands/install.py", line 377, in run
           requirement_set = resolver.resolve(
                             ^^^^^^^^^^^^^^^^^
         File "/app/.heroku/python/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/resolver.py", line 95, in resolve
           result = self._result = resolver.resolve(
                                   ^^^^^^^^^^^^^^^^^
         File "/app/.heroku/python/lib/python3.12/site-packages/pip/_vendor/resolvelib/resolvers.py", line 546, in resolve
           state = resolution.resolve(requirements, max_rounds=max_rounds)
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
         File "/app/.heroku/python/lib/python3.12/site-packages/pip/_vendor/resolvelib/resolvers.py", line 397, in resolve
           self._add_to_criteria(self.state.criteria, r, parent=None)
         File "/app/.heroku/python/lib/python3.12/site-packages/pip/_vendor/resolvelib/resolvers.py", line 173, in _add_to_criteria
           if not criterion.candidates:
                  ^^^^^^^^^^^^^^^^^^^^
         File "/app/.heroku/python/lib/python3.12/site-packages/pip/_vendor/resolvelib/structs.py", line 156, in __bool__
           return bool(self._sequence)
                  ^^^^^^^^^^^^^^^^^^^^
         File "/app/.heroku/python/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/found_candidates.py", line 155, in __bool__
           return any(self)
                  ^^^^^^^^^
         File "/app/.heroku/python/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/found_candidates.py", line 143, in <genexpr>
           return (c for c in iterator if id(c) not in self._incompatible_ids)
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
         File "/app/.heroku/python/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/found_candidates.py", line 47, in _iter_built
           candidate = func()
                       ^^^^^^
         File "/app/.heroku/python/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/factory.py", line 182, in _make_candidate_from_link
           base: Optional[BaseCandidate] = self._make_base_candidate_from_link(
                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
         File "/app/.heroku/python/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/factory.py", line 228, in _make_base_candidate_from_link
           self._link_candidate_cache[link] = LinkCandidate(
                                              ^^^^^^^^^^^^^^
         File "/app/.heroku/python/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/candidates.py", line 293, in __init__
           super().__init__(
         File "/app/.heroku/python/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/candidates.py", line 156, in __init__
           self.dist = self._prepare()
                       ^^^^^^^^^^^^^^^
         File "/app/.heroku/python/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/candidates.py", line 225, in _prepare
           dist = self._prepare_distribution()
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
         File "/app/.heroku/python/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/candidates.py", line 304, in _prepare_distribution
           return preparer.prepare_linked_requirement(self._ireq, parallel_builds=True)
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
         File "/app/.heroku/python/lib/python3.12/site-packages/pip/_internal/operations/prepare.py", line 525, in prepare_linked_requirement
           return self._prepare_linked_requirement(req, parallel_builds)
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
         File "/app/.heroku/python/lib/python3.12/site-packages/pip/_internal/operations/prepare.py", line 640, in _prepare_linked_requirement
           dist = _get_prepared_distribution(
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^
         File "/app/.heroku/python/lib/python3.12/site-packages/pip/_internal/operations/prepare.py", line 71, in _get_prepared_distribution
           abstract_dist.prepare_distribution_metadata(
         File "/app/.heroku/python/lib/python3.12/site-packages/pip/_internal/distributions/sdist.py", line 54, in prepare_distribution_metadata
           self._install_build_reqs(finder)
         File "/app/.heroku/python/lib/python3.12/site-packages/pip/_internal/distributions/sdist.py", line 124, in _install_build_reqs
           build_reqs = self._get_build_requires_wheel()
                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
         File "/app/.heroku/python/lib/python3.12/site-packages/pip/_internal/distributions/sdist.py", line 101, in _get_build_requires_wheel
           return backend.get_requires_for_build_wheel()
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
         File "/app/.heroku/python/lib/python3.12/site-packages/pip/_internal/utils/misc.py", line 751, in get_requires_for_build_wheel
           return super().get_requires_for_build_wheel(config_settings=cs)
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
         File "/app/.heroku/python/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_impl.py", line 166, in get_requires_for_build_wheel
           return self._call_hook('get_requires_for_build_wheel', {
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
         File "/app/.heroku/python/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_impl.py", line 321, in _call_hook
           raise BackendUnavailable(data.get('traceback', ''))
       pip._vendor.pyproject_hooks._impl.BackendUnavailable: Traceback (most recent call last):
         File "/app/.heroku/python/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 77, in _build_backend
           obj = import_module(mod_path)
                 ^^^^^^^^^^^^^^^^^^^^^^^
         File "/app/.heroku/python/lib/python3.12/importlib/__init__.py", line 90, in import_module
           return _bootstrap._gcd_import(name[level:], package, level)
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
         File "<frozen importlib._bootstrap>", line 1387, in _gcd_import
         File "<frozen importlib._bootstrap>", line 1360, in _find_and_load
         File "<frozen importlib._bootstrap>", line 1310, in _find_and_load_unlocked
         File "<frozen importlib._bootstrap>", line 488, in _call_with_frames_removed
         File "<frozen importlib._bootstrap>", line 1387, in _gcd_import
         File "<frozen importlib._bootstrap>", line 1360, in _find_and_load
         File "<frozen importlib._bootstrap>", line 1331, in _find_and_load_unlocked
         File "<frozen importlib._bootstrap>", line 935, in _load_unlocked
         File "<frozen importlib._bootstrap_external>", line 995, in exec_module
         File "<frozen importlib._bootstrap>", line 488, in _call_with_frames_removed
         File "/tmp/pip-build-env-vsvcuxhh/overlay/lib/python3.12/site-packages/setuptools/__init__.py", line 18, in <module>
           from setuptools.extern.six import PY3, string_types
       ModuleNotFoundError: No module named 'setuptools.extern.six'
       
 !     Push rejected, failed to compile Python app.
 !     Push failed

这是我的requirements.txt,它是从中提取的。我不确定我需要在这里做什么,因为在本地我没有问题,安装了六个并且 pip install -rrequirements.txt 工作得很好。

aiohttp==3.7.3
alpha-vantage==2.3.1
appdirs==1.4.4
asgiref==3.4.1
async-timeout==3.0.1
attrs==20.3.0
beautifulsoup4==4.9.3
certifi==2020.12.5
chardet==3.0.4
charset-normalizer==3.3.2
distlib==0.3.1
dj-database-url==0.5.0
Django==3.2.5
django-heroku==0.3.1
django-postgrespool2==2.0.5
filelock==3.0.12
greenlet==1.1.0
idna==2.10
importlib-metadata==3.3.0
multidict==5.1.0
numpy==1.21.0
pandas==1.3.0
platformdirs==4.0.0
polygon-api-client==0.2.11
psycopg2==2.9.1
python-dateutil==2.8.1
pytz==2021.1
requests==2.25.1
six==1.16.0
soupsieve==2.1
SQLAlchemy==1.4.20
sqlparse==0.4.1
tabulate==0.8.9
typing_extensions==4.7.1
urllib3==1.26.3
virtualenv==20.2.2
websocket-client==1.1.0
websockets==9.1
wheel==0.42.0
whitenoise==6.5.0
yarl==1.6.3
zipp==3.4.0

在本地,为了使其正常工作,我必须在“pip install -r requests.txt”之前手动运行“pip install 6”。然而,在 Heroku 上,您无法在设置之前在 dyno 中执行。

python heroku setuptools
1个回答
0
投票

此问题似乎是从 setuptools 版本 36 开始的。安装以前的版本对我有用。

pip install --upgrade“setuptools < 36"

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.