背景
.venv-python3.8-testVideoEncodePy
ubuntu20.04 venv 仮想環境の親ディレクトリの名前を変更し、 、execute を使用すると、source .venv-python3.8-testVideoEncodePy/bin/activate
cv2python3 test.py
がModuleNotFoundError: No module named 'cv2'
明らかにここにあることを示すプロンプトが表示されました.venv-python3.8-testVideoEncodePy/lib/python3.8/site-packages/cv2/
。
説明する
これは、venv 仮想環境が配置されている親ディレクトリの名前を変更し、Python モジュールの検索パス (sys.path) が更新されていないため、cv2 モジュールが見つからないことが原因である可能性があります。
まず、Python の import ステートメントは、動作時に sys.path リスト内のディレクトリを検索します。通常、このリストには、現在のディレクトリ、システムにインストールされたライブラリ、およびサードパーティのライブラリ (仮想環境など) が含まれます。仮想環境の場所を変更すると (親ディレクトリ名を変更することで)、Python は sys.path リスト内で正しいパスを見つけられず、その結果 cv2 を見つけることができない場合があります。
解決
方法 1: 次のコマンドを使用してpython3 -m venv xxx
仮想環境を再作成します。
この問題を解決する 1 つの方法は、仮想環境を再作成することです。
- まず、現在の仮想環境を非アクティブ化します。
deactivate
- 次に、新しいディレクトリに仮想環境を再作成します。
python3 -m venv .venv-python3.8-testVideoEncodePy
- 新しい仮想環境をアクティブ化します。
source .venv-python3.8-testVideoEncodePy/bin/activate
- テスト:
終了せずに仮想環境を直接再作成しました:
次に、仮想環境を終了し、再度仮想環境に入り、プログラムを実行しました。直接実行できます:
この方法では、python3 -m venv xxx
同じ名前の既存の仮想環境を作成する場合、以前の仮想環境にインストールされているライブラリをクリアせずに、sys.path を再構築するだけで済みます。悪くない。。。
方法 2: sys.path を調整する
もう 1 つの可能な解決策は、正しいパスが含まれるように sys.path を直接調整することです。ただし、sys.path が誤って変更されると他の問題が発生する可能性があるため、この方法は注意して使用する必要があります。一般に、仮想環境を再作成する方がより信頼性の高い方法です。
ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅟ⅍ ᅠᅟᅠᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠᅟᅠ⅌ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ⍌ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅟ⅍ ᅠᅟᅠᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠᅟᅠ⅌ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ⍌ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅟ⅍ ᅠᅟᅠᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅠᅟᅠᅟᅠᅟᅠᅟᅠᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠᅟᅠ⅌ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ⍌ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅟ⅍ ᅠᅟᅠᅟᅠᅟᅠᅟᅠᅟᅠᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠᅟᅍᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠᅟᅍ
ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅟ⅍ ᅠᅟᅠᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ