"setuptools"가 설치된 것으로 보이지만 "pip"에서 "ModuleNotFoundError"가 발생하는 이유는 무엇입니까?

"setuptools"가 설치된 것으로 보이지만 "pip"에서 "ModuleNotFoundError"가 발생하는 이유는 무엇입니까?

EC2 인스턴스에서 를 사용하여 Python 패키지를 설치하려고 시도했지만 pip이라는 예외가 발생합니다 ModuleNotFoundError: No module named 'setuptools'.

상황에 따라 내가 실행한 명령은 다음과 같습니다.

pip install --user mlflow

setuptools다음 명령을 사용하여 설치 문제를 해결하려고 했습니다 sudo yum install python36-setuptools. 그러나 반환된 메시지는 setuptools이미 설치되어 있음을 나타냅니다.

Package python36-setuptools-36.2.7-1.33.amzn1.noarch already installed and latest version
Nothing to do

조언해주세요.

고쳐 쓰다:EC2 인스턴스를 에서 로 전환한 후 를 사용하여 성공적으로 설치할 수 Amazon Linux AMI 2018.03.0있었습니다 .Amazon Linux 2 AMImlflowpip

문제는 여전히 남아 있습니다. 왜 사용할 수 있지만 Amazon Linux 2 AMI성공적으로 설치되지 않습니까 Amazon Linux AMI 2018.03.0?

답변1

과거에 이 문제를 일으킨 작업을 했을 수 있으므로 컴퓨터에 액세스할 수 없는 경우 이를 확인하기 어려울 수 있습니다.
가장 가능성 있는 설명은 다음과 같습니다.

pippython2 를 가리키 므로 이전 AMI에서는 작동하지 않지만 pippython setuptools3.6이 설치되어 있습니다. 이를 설치해야 할 수도 있습니다 python-setuptools-36.2.7.
올바른 설치 도구가 이미 설치되어 있으므로 다른 AMI에서도 작동할 수 있습니다.

이것은 또한 Python 2와 Python 3이 호환되지 않아 python-2-libraries가 Python 3에서 작동하지 않기 때문에 질문의 두 번째 부분에 대한 답변입니다.

또 다른 가능성은 루트가 아닌 사용자로 실행되는 pip가 액세스할 수 없도록 하는 권한 문제가 있거나 setuptools어떤 방식으로든 패키지를 찾을 수 없게 하는 문제가 있다는 것
입니다 .PYTHONPATH

바라보다이것기본 Python 버전 및 AMI의 Python 2 지원에 대해 설명합니다.

답변2

소스에서 패키지를 설치하려고 할 때 동일한 EC2 AMI에서 이 문제가 발생했습니다. 여러분과 마찬가지로 저도 python36 패키지와 함께 제공되는 기본값에서 pip를 업데이트했습니다. 단, sudo가 아닌 사용자별 모듈만 업데이트했습니다.

저는 간단히 기본 버전으로 되돌려서 이 문제를 해결했습니다.

python3 -m pip install pip==9.0.3

시스템 pip 대신 python36 pip를 명시적으로 대상으로 지정했음에도 불구하고 설명할 수 없는 setuptools 오류가 발생했을 때 alembic==1.4.2(airflow 1.10.12의 고정 종속성)를 설치하고 있었습니다.

내가 pip를 업데이트한 유일한 이유는이건 틀렸어IPython 패키지를 차단합니다. 이를 위해서는 v7.17+부터 시작하는 Python 3.7이 필요합니다. 이는 또 다른 고정된 공기 흐름 종속성입니다.

[...snip...]
Successfully installed setuptools-50.3.0 wheel-0.35.1
  Removed build tracker: '/tmp/pip-req-tracker-c93y9xdk'
  Installing build dependencies ... done
  Running command /usr/bin/python3 /home/airflow/.local/lib/python3.6/site-packages/pip/_vendor/pep517/_in_process.py get_requires_for_build_wheel /tmp/tmpqnn43_v0
  Getting requirements to build wheel ... done
ERROR: Exception:
Traceback (most recent call last):
  File "/home/airflow/.local/lib/python3.6/site-packages/pip/_internal/cli/base_command.py", line 228, in _main
    status = self.run(options, args)
  File "/home/airflow/.local/lib/python3.6/site-packages/pip/_internal/cli/req_command.py", line 182, in wrapper
    return func(self, options, args)
  File "/home/airflow/.local/lib/python3.6/site-packages/pip/_internal/commands/install.py", line 324, in run
    reqs, check_supported_wheels=not options.target_dir
  File "/home/airflow/.local/lib/python3.6/site-packages/pip/_internal/resolution/legacy/resolver.py", line 183, in resolve
    discovered_reqs.extend(self._resolve_one(requirement_set, req))
  File "/home/airflow/.local/lib/python3.6/site-packages/pip/_internal/resolution/legacy/resolver.py", line 388, in _resolve_one
    abstract_dist = self._get_abstract_dist_for(req_to_install)
  File "/home/airflow/.local/lib/python3.6/site-packages/pip/_internal/resolution/legacy/resolver.py", line 340, in _get_abstract_dist_for
    abstract_dist = self.preparer.prepare_linked_requirement(req)
  File "/home/airflow/.local/lib/python3.6/site-packages/pip/_internal/operations/prepare.py", line 483, in prepare_linked_requirement
    req, self.req_tracker, self.finder, self.build_isolation,
  File "/home/airflow/.local/lib/python3.6/site-packages/pip/_internal/operations/prepare.py", line 91, in _get_prepared_distribution
    abstract_dist.prepare_distribution_metadata(finder, build_isolation)
  File "/home/airflow/.local/lib/python3.6/site-packages/pip/_internal/distributions/sdist.py", line 38, in prepare_distribution_metadata
    self._setup_isolation(finder)
  File "/home/airflow/.local/lib/python3.6/site-packages/pip/_internal/distributions/sdist.py", line 96, in _setup_isolation
    reqs = backend.get_requires_for_build_wheel()
  File "/home/airflow/.local/lib/python3.6/site-packages/pip/_vendor/pep517/wrappers.py", line 161, in get_requires_for_build_wheel
    'config_settings': config_settings
  File "/home/airflow/.local/lib/python3.6/site-packages/pip/_vendor/pep517/wrappers.py", line 265, in _call_hook
    raise BackendUnavailable(data.get('traceback', ''))
pip._vendor.pep517.wrappers.BackendUnavailable: Traceback (most recent call last):
  File "/home/airflow/.local/lib/python3.6/site-packages/pip/_vendor/pep517/_in_process.py", line 86, in _build_backend
    obj = import_module(mod_path)
  File "/usr/lib64/python3.6/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 994, in _gcd_import
  File "<frozen importlib._bootstrap>", line 971, in _find_and_load
  File "<frozen importlib._bootstrap>", line 941, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "<frozen importlib._bootstrap>", line 994, in _gcd_import
  File "<frozen importlib._bootstrap>", line 971, in _find_and_load
  File "<frozen importlib._bootstrap>", line 953, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'setuptools'

관련 정보