J'utilise python dans un serveur Windows (64 bits) et il est installé par un autre utilisateur dans son propre répertoire dans C: \ user \ userx \ AppData \ Local \ Programs \ Python \ Python36
Tous les autres utilisateurs (à l'exception de moi) peuvent exécuter des fichiers Python sur ce serveur. J'obtiens l'erreur suivante lorsque j'exécute un programme Python:
C:\Users\user x\AppData\Local\Programs\Python\Python36>test.py launcher build: 32bit launcher executable: Console File 'C:\Users\my user\AppData\Local\py.ini' non-existent File 'C:\Windows\py.ini' non-existent Called with command line: "C:\Users\user x\AppData\Local\Programs\Python\Python 36\test.py" maybe_handle_shebang: read 12 bytes maybe_handle_shebang: BOM not found, using UTF-8 locating Pythons in 64bit registry locate_pythons_for_key: unable to open PythonCore key in HKCU locate_pythons_for_key: unable to open PythonCore key in HKLM locating Pythons in native registry locate_pythons_for_key: unable to open PythonCore key in HKCU locate_pythons_for_key: unable to open PythonCore key in HKLM found no configured value for 'python' search for default Python found no interpreter Can't find a default Python.
J'ai essayé d'exécuter mon code dans la ligne de commande avec set pylaunch_debug = 1
et il a montré des erreurs ci-dessous.
4 Réponses :
J'ai trouvé la solution:
la définition de la variable globale dans cmd comme ci-dessous a résolu le problème
C:> ftype Python = "C: \ Users \ user x \ AppData \ Local \ Programs \ Python \ Python36 \ python.exe% 1% *"
Type de fichier 'Python' introuvable ou aucune commande ouverte qui lui est associée.
Associez le bon groupe de fichiers aux scripts .py:
ftype Python.File="C:\Path\to\pythonw.exe %1 %*"
Redirigez tous les fichiers Python vers le nouvel exécutable:
assoc .py=Python.File
Juste une petite correction à ceci: j'ai trouvé que je devais mettre les guillemets uniquement autour du chemin, PAS autour des arguments! Donc quelque chose comme ftype Python.File = "C: \ Path \ to \ pythonw.exe"% 1% *
Sous Windows, vous devrez peut-être exécuter l'invite de commande en tant qu'administrateur pour définir l'assoc.
"Impossible de trouver un Python par défaut" ne provient pas de Windows lui-même, mais du lanceur de python.
La réinitialisation de ftype
(comme dans certaines autres réponses) directement sur une installation python spécifique devrait masque l'erreur, mais contourne le lanceur Python. L'alternative est de résoudre le problème réel. Peut-être plus complexe que de simplement le faire disparaître, mais le masquer signifie qu'une fonctionnalité clé, le lanceur python, a ensuite été désactivée.
Si vous rencontrez cette erreur, vérifiez ftype en saisissant
Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Python\PythonCore\3.7\InstallPath
sans définir de nouvelle valeur.
La valeur normale doit être Python.File = "C: \ windows \ py.exe" "% L"% *
Py.exe
est le Lanceur Python . Ce lanceur inspecte les fichiers python et les " shebang " en haut du fichier spécifiant quelle version de python sera utilisée.
Py.exe est le programme qui signale «impossible de trouver un python par défaut». La réinitialisation du ftype
pour charger directement python contournera l'erreur, mais désactivera l'étape intermédiaire de py.exe qui devrait sélectionner la bonne version de python pour le fichier. Si vous désactivez correctement py.exe, c'est correct, mais si vous souhaitez corriger py.exe, essayez de définir la variable d'environnement PYLAUNCH_DEBUG
comme ceci (comme l'a fait l'affiche d'origine): p>
set PYLAUNCH_DEBUG=1
Puis réessayez (ou entrez simplement py
comme commande) pour plus d'informations sur exactement ce qui échoue.
Pour moi l'entrée de registre pour
ftype Python.File
était manquante et l'ajout de cette clé a résolu le problème. Vous pouvez modifier les clés de registre et définir celle ci-dessus pour la version python appropriée avec le chemin requis, ou ajouter un fichier py.ini. Les instructions pour py.ini sont un peu longues pour ici, mais j'ajouterai un lien si quelqu'un le souhaite.
Il y a deux problèmes avec le contournement du lanceur python. Premièrement, le problème pourrait revenir si une nouvelle version est ajoutée, et deuxièmement, la capacité des programmes à spécifier la bonne version de python est désactivée.
cela fonctionne pour moi en éditant PATH dans les variables système:
ajout du chemin python: ".................. \ Python36"
et écrivez sur cmd lors de l'exécution du code, le mot "python" avant le chemin du fichier du code comme:
python code_file_name.py
Vous devez définir la variable Path
modifiez votre variable d'environnement système et ajoutez-y "C: \ user \ userx \ AppData \ Local \ Programs \ Python \ Python36"
J'ai déjà défini une variable de chemin.
Essayez d'exécuter l'interpréteur python dans cmd
dans cmd python test.py fonctionne, mais pas test.py. mais je veux le résoudre pour pouvoir utiliser IDE.