web-dev-qa-db-ja.com

OSの再インストール後にvirtualenvを使用してPyCharmプロジェクトで「Python SDKをセットアップできません」

Windowsを再インストールし、既存のPycharmプロジェクトを開いたときに、[設定]> [プロジェクトインタープリター]で「SDKが無効のようです」というエラーが表示されます。

プロジェクトインタープリターパスは、venv内のpythonを指しています:

MyProject\venv\Scripts\python.exe

enter image description here

私はpython.exeを再追加しようとしました:

enter image description here

私がエラーを受け取ったとき:

enter image description here

更新:ここにidea.logからのエラーがあります。仮想環境に関する他の多くの問題は、Windows環境変数とシステムパスにあるようです:

2018-09-28 19:50:40,275 [  17601]   INFO - hon.packaging.PyPIPackageCache - Loaded 153296 packages from C:\Users\Matt\.PyCharm2018.2\system\python_packages\pypi-cache.json 
2018-09-28 19:50:40,816 [  18142]   INFO - rains.python.sdk.PythonSdkType - Fatal Python error: Py_Initialize: unable to load the file system codec
ModuleNotFoundError: No module named 'encodings'

Current thread 0x00000fa8 (most recent call first):

Exit code -1073740791 
2018-09-28 19:50:40,816 [  18142]  ERROR - ns.python.sdk.PythonSdkUpdater - Failed to determine Python's sys.path value:
STDOUT: 
STDERR: Fatal Python error: Py_Initialize: unable to load the file system codec
ModuleNotFoundError: No module named 'encodings'

Current thread 0x00000fa8 (most recent call first):

com.jetbrains.python.sdk.InvalidSdkException: Failed to determine Python's sys.path value:
STDOUT: 
STDERR: Fatal Python error: Py_Initialize: unable to load the file system codec
ModuleNotFoundError: No module named 'encodings'
22
el_pup_le

私がまったく同じ問題に直面したときに私の問題を解決したのは次のとおりです

選択ボックスの右側にあるProject Interpreterに移動し、歯車のアイコンをクリックすると、2つのオプションが追加およびすべて表示されます。

同じディレクトリから以前の存在が表示されている場合は、[すべて表示]をクリックして削除します。 [追加]または[+]記号をクリックして新しいインタープリターを追加し、project pathに移動して、仮想環境ディレクトリに移動します。

venv/bin/{バージョンコードでpython実行可能ファイルを選択します。つまり、python3.6を使用している場合はpython3.6を選択します}

選択したら、install packaging toolsと書かれた通知をクリックして、適用をクリックして完了できます。

enter image description here

4
silverFoxA

おそらく、PyCharmが使用しようとするPython環境へのパスはどこかで無効になっています。 (少なくとも)2つの主要な容疑者がいます。

PyCharm設定でのvirtualenvへのパス

PyCharmは、環境内で物事を実行するために環境へのパスを知る必要があります。そのため、そのパスが変更された場合、PyCharmの保存されたパスは無効になります。

File->Settings...->Project interpreter->(Gear icon)->Show all...でプロジェクトのインタープリター設定に移動します。

settings

次に、必要なエントリを削除して再作成します。または、それらを編集して正しいパスを指定します。例えば。これは、Anacondaインストールを削除した後の私のリストの表示です。

interpreter settings

ベース環境へのvirtualenvのパス

Virtualenvは完全なインストールではないため、そこからファイルを使用できるように、ベースインストールへのパスをどこかに保存する必要があります。

この記事の執筆時点では、Windowsのvirtualenvv16.0.0)は次のように実装されています。

  • 実際のpython.exeおよびその他のいくつかのファイルがvirtualenvのサブツリーにコピーされます
  • Lib\orig-prefix.txtには、基本インストールへのパスが格納されます。カスタムsys.pathを介して、ベースインストールのLibsite.pyに追加するために使用されます。

そのため、そのファイルのパスが無効になると、virtualenvのPythonインタープリターは、コピーされた少数のモジュール以外の標準モジュールを見つけることができなくなります。あなたの症状にぴったりです。

1
ivan_pozdeev