「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で動作しないため、質問の2番目の部分への答えです。

もう1つの可能性は、root以外のユーザーとして実行されている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'

関連情報