web-dev-qa-db-fra.com

'Impossible d'installer un Python SDK' dans un projet PyCharm avec virtualenv après la réinstallation du système d'exploitation

J'ai réinstallé Windows et ouvert un projet Pycharm existant et j'obtiens le message d'erreur "Le SDK semble invalide" dans Paramètres> Interprète de projet.

Le chemin de l’interprète du projet pointe vers python dans le venv:

MyProject\venv\Scripts\python.exe

enter image description here

J'ai essayé de ré-ajouter python.exe:

enter image description here

C’est quand j’obtiens l’erreur:

enter image description here

Mise à jour: voici une erreur de idea.log, de nombreux autres problèmes concernant les environnements virtuels semblent concerner les variables d'environnement Windows et les chemins système:

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

Voici ce qui a résolu mon problème lorsque j'ai été confronté exactement au même problème

Aller vers Project Interpreter, à droite de la zone de sélection, cliquez sur l’icône représentant un engrenage. Deux options s'afficheront: tout afficher.

Cliquez sur Tout afficher, si vous voyez l'existence précédente du même répertoire, supprimez-la. Cliquez sur ajouter ou + signe pour ajouter un nouvel interprète et accéder à ton project path, accédez au répertoire de l’environnement virtuel.

venv/bin/{sélectionnez le python exécutable avec le code de version i.e si vous utilisez python3.6, sélectionnez python3.6}

Une fois sélectionné, vous pouvez maintenant cliquer sur la notification qui indique install packaging tools, cliquez sur Appliquer et c'est fait.

enter image description here

4
silverFoxA

Très probablement, un chemin d'accès à Python l'environnement que PyCharm essaie d'utiliser est devenu invalide quelque part. Il existe (au moins) deux principaux suspects:

Chemin vers votre virtualenv dans les paramètres PyCharm

PyCharm a besoin de connaître le chemin d'accès à votre environnement pour y exécuter des tâches. Ainsi, si ce chemin a changé, le chemin enregistré de PyCharm est devenu invalide.

Accédez aux paramètres d'interprétation de votre projet dans File->Settings...->Project interpreter->(Gear icon)->Show all...:

settings

Puis supprimez et recréez les entrées nécessaires. Ou éditez-les et spécifiez les chemins corrects. Par exemple. Voici à quoi ma liste ressemble après avoir supprimé une installation d'Anaconda:

interpreter settings

Chemin dans le virtualenv à son installation de base

Virtualenv n'étant pas une installation complète, un chemin d'accès à son installation de base doit être stocké quelque part pour pouvoir utiliser les fichiers à partir de celui-ci.

Au moment de l'écriture, virtualenv (v16.0.0) Dans Windows est implémenté comme ceci:

  • Le réel python.exe Et plusieurs autres fichiers sont copiés dans la sous-arborescence de virtualenv
  • Dans Lib\orig-prefix.txt, Le chemin d'accès à l'installation de base est stocké. Il est utilisé pour ajouter le Lib de l'installation de base à sys.path Via un site.py Personnalisé.

Ainsi, si le chemin dans ce fichier devient invalide, l’interprète de virtualenv Python ne pourra pas trouver de modules standard, à l’exception de ceux qui ont été copiés. Ce qui s’adapte parfaitement à vos symptômes.

1
ivan_pozdeev