"Невозможно настроить SDK Python" в проекте PyCharm, используя virtualenv после переустановки ОС
Я снова установил окна и открыл существующий проект Pycharm и получил сообщение об ошибке "SDK кажется недействительным" в "Настройки"> "Переводчик проекта".
Путь интерпретатора проекта указывает на python в venv:
MyProject\venv\Scripts\python.exe
![enter image description here]()
Я попробовал повторно добавить python.exe:
![enter image description here]()
То когда я получаю ошибку:
![enter image description here]()
Обновление: вот ошибка от идеи.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 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 sys.path value:
STDOUT:
STDERR: Fatal Python error: Py_Initialize: unable to load the file system codec
ModuleNotFoundError: No module named 'encodings'
Ответы
Ответ 1
Вот что решило мою проблему, когда я столкнулся с точно такой же проблемой
Перейдите к Project Interpreter
, справа от поля выбора, щелкните значок шестеренки, он покажет две опции: добавить & показать все.
Нажмите Показать все, если вы видите предыдущее существование из того же каталога, удалите его. Нажмите на кнопку добавления или знак +
, чтобы добавить нового интерпретатора и перейдите к project path
, перейдите вниз к каталогу виртуальной среды.
venv/bin/{выберите исполняемый файл python с кодом версии, т.е. если вы используете python3.6, выберите python3.6}
После выбора вы можете нажать на уведомление с надписью install packaging tools
, нажать "Применить" и все готово.
![enter image description here]()
Ответ 2
Скорее всего, какой-то путь к среде Python, который пытается использовать PyCharm, где-то стал недействительным. Есть (по крайней мере) два основных подозреваемых:
Путь к вашему virtualenv в настройках PyCharm
PyCharm должен знать путь к вашей среде, чтобы управлять вещами в нем. Итак, если этот путь изменился, сохраненный путь PyCharm стал недействительным.
Перейдите к настройкам интерпретатора для вашего проекта в File->Settings...->Project interpreter->(Gear icon)->Show all...
:
![settings]()
Затем удалите и заново создайте необходимые записи. Или отредактируйте их и укажите правильные пути. Например, это мой список выглядит после того, как я удалил установку Anaconda:
![interpreter settings]()
Путь в virtualenv к базовой установке
Поскольку virtualenv не является полной установкой, он должен иметь путь к своей базовой установке, хранящейся где-нибудь, чтобы иметь возможность использовать файлы оттуда.
Начиная с этой записи, virtualenv
(v16.0.0
) в Windows реализуется следующим образом:
- Реальный файл
python.exe
и несколько других файлов копируются в подэлемент virtualenv - В
Lib\orig-prefix.txt
путь к базовой установке. Он используется для добавления базовой версии Lib
в sys.path
помощью пользовательского site.py
Таким образом, если путь в этом файле становится недействительным, интерпретатор virtualenv Python не сможет найти никаких стандартных модулей, кроме тех, которые были скопированы. Что отлично подходит для ваших симптомов.
Ответ 3
Какое решение: Проверьте venv\pyvenv.cfg
и укажите правильный путь к базовой установке Python.
Что наиболее вероятно произошло:
После переустановки ОС у вас не будет переустановлен базовый интерпретатор Python, или вы установили его в другом месте, чем раньше. Таким образом, ваша виртуальная среда не может найти установку Python. Виртуальная среда подразумевает, что все библиотеки и настройки изолированы от других проектов. Он не обеспечивает изолированную установку Python. Вам все еще нужен ваш базовый питон, который использовался для создания venv.
Мой случай: У меня есть проект в сетевой папке, и я пытаюсь получить к нему доступ с разных компьютеров. Базовые пути Python зависят от самого ПК. Решение выше работает хорошо для меня. К сожалению, мне нужно обновить pyvenv.cfg
в зависимости от используемого ПК.
P.S. Я полагаю, что существует переменная окружения для переопределения значения конфигурации venv. Я только попытался set PYTHONPATH=C:\Anaconda3\envs\python37
на Windows, а затем активировать venv. Это не произвело никакого эффекта, и я бросил это.