Python で Scrapy ライブラリをインストールする際の一般的なエラーの解決

目次

1. pip3 コマンドに関するエラー報告

2.scrapy実行時にエラーが発生する(Python3ではOpenSSLモジュールでエラーが発生する)

3. pyopensslのアンインストール時にエラーが発生する


Scrapy ライブラリは Windows では互換性の問題があるため、以下では Linux システムへのインストールについて説明します。

1. pip3 コマンドに関するエラー報告

エラーコード:

error: externally-managed-environment

× This environment is externally managed
╰─> To install Python packages system-wide, try apt install
    python3-xyz, where xyz is the package you are trying to
    install.
    
    If you wish to install a non-Debian-packaged Python package,
    create a virtual environment using python3 -m venv path/to/venv.
    Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make
    sure you have python3-full installed.
    
    If you wish to install a non-Debian packaged Python application,
    it may be easiest to use pipx install xyz, which will manage a
    virtual environment for you. Make sure you have pipx installed.
    
    See /usr/share/doc/python3.11/README.venv for more information.

note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages.
hint: See PEP 668 for the detailed specification.

解決策: 元のコマンドの後にパラメータ --break-system-packages を追加します。

Scrapy はコマンドとして直接使用できるため、ターミナルに存在しないコマンドを入力すると、インストールするように求められます。

pip3 が動作しない場合があります。pipx に変更するか、apt install python3-file name を使用してインストールすることもできます。

pipx install scrapy

apt install python3-scrapy

 

2.scrapy実行時にエラーが発生する(Python3ではOpenSSLモジュールでエラーが発生する)

エラーコード:

Traceback (most recent call last):
  File "/usr/bin/scrapy", line 33, in <module>
    sys.exit(load_entry_point('Scrapy==2.10.0', 'console_scripts', 'scrapy')())
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/bin/scrapy", line 25, in importlib_load_entry_point
    return next(matches).load()
           ^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/importlib/metadata/__init__.py", line 202, in load
    module = import_module(match.group('module'))
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "<frozen importlib._bootstrap>", line 1206, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1178, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1128, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
   ...
 AttributeError: module 'lib' has no attribute 'SSL_CTX_set_ecdh_auto'

これは Python3 の OpenSSL モジュールのエラーです。アンインストールして再インストールする必要があります。

解決:

pip3 uninstall pyopenssl
pip3 install pyopenssl

 いくつかのコマンドを試してみましたが、機能しないことがわかりました。

3. pyopensslのアンインストール時にエラーが発生する

エラーコード:

Found existing installation: pyOpenSSL 21.0.0
Not uninstalling pyopenssl at /usr/lib/python3/dist-packages, outside environment /usr
Can't uninstall 'pyOpenSSL'. No files were found to uninstall.

Requirement already satisfied: pyopenssl in /usr/lib/python3/dist-packages (21.0.0)

解決:

フォルダーへのパスを見つけて、pyOpenSSL-21.0.0 ディレクトリを直接削除して、再インストールします。

このフォルダーは /usr/lib/python3/dist-packages/ の下にあります。

フォルダ全体を削除する

コマンドを使用して pyopenssl を再インストールします

pip3 install pyopenssl --break-system-packages

インストールが成功したら、scrapy コマンドを入力します。

以下のように、ライブラリが正常にインストールされたことを意味します。

ipython3 を入力して確認することもできます。

ipython は、デフォルトの Python シェルよりもはるかに使いやすい Python インタラクティブ シェルで、自動変数補完、自動インデント、bash シェル コマンドのサポート、および多くの便利な組み込み関数と機能を備えています。

ライブラリが正常にインポートされ、エラーが報告されない限り、インストールが成功したことが証明されます。

 

おすすめ

転載: blog.csdn.net/Myon5/article/details/133176596