Windowsを再インストールし、既存のPycharmプロジェクトを開いたときに、[設定]> [プロジェクトインタープリター]で「SDKが無効のようです」というエラーが表示されます。
プロジェクトインタープリターパスは、venv内のpythonを指しています:
MyProject\venv\Scripts\python.exe
私はpython.exeを再追加しようとしました:
私がエラーを受け取ったとき:
更新:ここに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'
私がまったく同じ問題に直面したときに私の問題を解決したのは次のとおりです
選択ボックスの右側にあるProject Interpreter
に移動し、歯車のアイコンをクリックすると、2つのオプションが追加およびすべて表示されます。
同じディレクトリから以前の存在が表示されている場合は、[すべて表示]をクリックして削除します。 [追加]または[+
]記号をクリックして新しいインタープリターを追加し、project path
に移動して、仮想環境ディレクトリに移動します。
venv/bin/{バージョンコードでpython実行可能ファイルを選択します。つまり、python3.6を使用している場合はpython3.6を選択します}
選択したら、install packaging tools
と書かれた通知をクリックして、適用をクリックして完了できます。
おそらく、PyCharmが使用しようとするPython環境へのパスはどこかで無効になっています。 (少なくとも)2つの主要な容疑者がいます。
PyCharmは、環境内で物事を実行するために環境へのパスを知る必要があります。そのため、そのパスが変更された場合、PyCharmの保存されたパスは無効になります。
File->Settings...->Project interpreter->(Gear icon)->Show all...
でプロジェクトのインタープリター設定に移動します。
次に、必要なエントリを削除して再作成します。または、それらを編集して正しいパスを指定します。例えば。これは、Anacondaインストールを削除した後の私のリストの表示です。
Virtualenvは完全なインストールではないため、そこからファイルを使用できるように、ベースインストールへのパスをどこかに保存する必要があります。
この記事の執筆時点では、Windowsのvirtualenv
(v16.0.0
)は次のように実装されています。
python.exe
およびその他のいくつかのファイルがvirtualenvのサブツリーにコピーされますLib\orig-prefix.txt
には、基本インストールへのパスが格納されます。カスタムsys.path
を介して、ベースインストールのLib
をsite.py
に追加するために使用されます。そのため、そのファイルのパスが無効になると、virtualenvのPythonインタープリターは、コピーされた少数のモジュール以外の標準モジュールを見つけることができなくなります。あなたの症状にぴったりです。