Erreur fatale dans le lanceur: impossible de créer un processus à l'aide de "" C: \ Program Files (x86) \ Python33 \ python.exe "" C: \ Program Files (x86) \ Python33 \ pip.exe ""

211

La recherche sur le net semble être un problème provoqué par les espaces dans le chemin d'installation de Python.

Comment puis-je piptravailler sans avoir à tout réinstaller dans un chemin sans espaces?

Archimedix
la source
1
Avez-vous essayé d'utiliser des noms de chemin courts pour les fichiers programme (X86)? par exemple "C: \ PROGRA ~ 2 \ Python33 \ python.exe"
Shadow9043
4
Le problème est que lorsqu'il pipest installé, il utilisera le nom long d'origine qu'il obtient du système. Voir ma réponse ci-dessous.
Archimedix
2
Reproductible avec Python 2.7 et Windows 10 Preview build 10074
Csaba Toth
2
@CsabaToth, je dois corriger votre modification: les guillemets doubles étaient corrects comme ils l'étaient avant votre modification; ils étaient juste en omettant les guillemets simples: L'erreur est textuellement: Fatal error in launcher: Unable to create process using '""C:\Program Files (x86)\Python33\python.exe"" "C:\Program Files (x86)\Python33\Scripts\pip.exe" '. Ça a l'air étrange, mais c'est comme ça.
Archimedix
J'utilisais Powershell (Admin) et cela fonctionne du premier coup.
Aakash Choubey

Réponses:

455

Il paraît que

python -m pip install XXX 

fonctionnera de toute façon (travaillé pour moi) (voir le lien par user474491 )

user4154243
la source
9
En a fait la réponse acceptée, bien qu'il s'agisse plus d'une solution de contournement (ou d'une approche alternative) que d'un correctif réel, mais de toute façon, il est plus universellement applicable.
Archimedix
2
@ user4154243, cela fonctionne, mais pouvez-vous expliquer ce qu'il fait réellement? Y a-t-il des conséquences à utiliser cela pour installer toutes les autres bibliothèques?
multigoodverse
1
vous me sauvez, j'essayais de configurer oddo et son besoin de configurer python. J'étais essayer 5 6 heures pour le même problème, enfin son travail à partir de votre idée. grand merci. J'ajoute également ma réponse pour les travaux liés à oddo.
Ajay2707
1
Eu ce problème dans un virtualenv, utilisé votre solution pour installer le dernier pip, qui a ensuite permis l'utilisation de la commande normalement: python -mpip install pip --upgrade
tr00st
4
ceci est une solution de contournement et ne devrait pas être la réponse acceptée
Raiden Core
75

Sous Windows au moins, pipstocke le chemin d'exécution dans l'exécutable pip.exelors de son installation.

Modifiez ce fichier à l'aide d'un éditeur hexadécimal ou de WordPad (vous devez l'enregistrer en texte brut puis conserver les données binaires), changez le chemin d'accès à Python avec des guillemets et des espaces comme celui-ci:

#!"C:\Program Files (x86)\Python33\python.exe"

vers un chemin échappé sans espaces ni guillemets et pad avec des espaces (les points à la fin doivent être des espaces):

#!C:\Progra~2\Python33\python.exe.............

Pour "C: \ Program Files", ce chemin serait probablement "C: \ Progra ~ 1" (les noms de chemin raccourcis en notation DOS / Windows 3.x utilisent le tilde et les chiffres). Windows fournit cette notation alternative pour une compatibilité descendante avec les applications DOS / Windows 3.x.

Notez que comme il s'agit d'un fichier binaire, vous ne devez pas modifier la taille du fichier qui peut casser l'exécutable, d'où le remplissage.

Enregistrez avec des privilèges d'administrateur, assurez-vous qu'il est réellement enregistré à l'emplacement cible et réessayez.

Vous devrez peut-être également définir la PATHvariable pour utiliser la ~notation du chemin vers pip.

Archimedix
la source
1
Je ne parlais pas de la variable d'environnement. Je voulais seulement dire où cette chaîne est apparue, "#!"C:\Program Files (x86)\Python33\python.exe"j'ai pu savoir où elle était en utilisant un éditeur hexadécimal. Cependant, en utilisant Sublime Text, aucune chaîne de ce type n'était visible. Pouvez-vous penser à une raison pour laquelle le chemin est affiché dans Wordpad et non dans Sublime Text?
Sohaib
2
WordPad est un éditeur de texte stupide, Sublime est probablement trop intelligent et affiche un vidage hexadécimal du contenu, je suppose.
Archimedix
6
Cela a fonctionné pour moi. Ma chaîne d'origine était #!"C:\Program Files\Python3.4\python.exe", donc je l'ai changé #!C:\Progra~1\Python3.4\python.exe et cela a fonctionné. J'ai pu modifier le fichier correctement avec Notepad ++. Cette chaîne apparaît vers la fin du fichier, à la fin d'une longue ligne.
Scott Weldon
3
Cela a fonctionné. J'ai simplement désinstallé python. Puis réinstallé; lors de la réinstallation, je viens de changer le dossier d'installation de C:\Program Files (x86)\Python34en C:\Progra~2\Python34. (si vous ne souhaitez pas traiter avec un éditeur hexadécimal ou modifier un fichier binaire)
Trent
2
"Sous Windows au moins, pip stocke le chemin d'exécution dans l'exécutable pip.exe lorsqu'il est installé." Maintenant, c'est stupide -.- Cela m'a coûté une demi-heure pour comprendre cela.
plocks
36

ayant le même problème que j'ai lu dans https://pip.pypa.io/en/latest/installing.html#install-pip que pour mettre à jour pip c'est:

python -m pip install -U pip

J'ai donc fait (par exemple)

python -m pip install virtualenv

Et ça a marché! Vous pouvez donc faire de même en étant «virtualenv» un autre package que vous souhaitez.

MiguelCldn
la source
4
Je souffrais de l'erreur répertoriée et c'était la solution qui fonctionnait pour moi! J'ai même pu utiliser «pip install virtualenv» et cesser d'utiliser «python -m pip» après avoir effectué la mise à niveau vers le dernier pip. Merci!
steve-gregory
18

python -m pip

fonctionne vraiment pour le problème Fatal error in launcher: Unable to create process using '"'.Worked sur Windows 10

Joel K Thomas
la source
16

J'ai eu un problème similaire et la mise à niveau de pip l'a corrigé pour moi.

python -m pip install --upgrade pip 

C'était sous Windows et le chemin vers python dans pip.exe était incorrect. Voir la réponse d'Archimedix pour plus d'informations sur le chemin.

Johan Gov
la source
2
Merci! Vous devrez peut-être ajouter: --force
Masood Lapeh
J'avais déjà installé la dernière version. Python -m pip install pip == 9.0.0 utilisé pour passer à une ancienne version et effectuer la mise à niveau pour corriger pip.exe
Stefan
5

Voici comment je l'ai résolu:

  1. ouvrir pip.exedans 7zip et extraire __main__.pydans le dossier Python \ Scripts.

    Dans mon cas, c'était C:\Program Files (x86)\Python27\Scripts

  2. Renommer __main__.pyenpip.py

  3. Exécuter! python pip.py install something

ÉDITER:

Si vous voulez pouvoir faire pip install somethingn'importe où, faites-le aussi:

  1. renommer pip.py en pip2.py (pour éviter les erreurs d'importation pip)

  2. faire C:\Program Files (x86)\Python27\pip.batavec le contenu suivant:

python "C: \ Program Files (x86) \ Python27 \ Scripts \ pip2.py"% 1% 2% 3% 4% 5% 6% 7% 8% 9

  1. ajouter C:\Program Files (x86)\Python27à votre CHEMIN (si ce n'est pas déjà fait)

  2. Exécuter! pip install something

apple16
la source
4

Il s'agit d'un bug connu lorsqu'il y a un espace sur le virtualenvchemin. Une correction a été apportée et sera disponible dans la prochaine version.

user474491
la source
5
Le bug Pip a maintenant été corrigé. Mise à jour en exécutantpython -m pip install -U pip
StuartLC
13
Non, pour l'instant, Python34 a toujours le bug!
Martin F
Toujours un problème: Python36
Masood Lapeh
1
toujours un problème: Python37
jmn
ont toujours le problème: python 3.6.6
user2386301
3

j'ai eu le même problème et j'ai fait une mise à niveau de pip en utilisant ce qui suit et maintenant cela fonctionne bien. python -m pip install --upgrade pip

Amardev Joynauth
la source
2

J'ai écrit un script pour patcher ces exes. Mais le meilleur moyen est de corriger le distutil lui-même.

"""Fix "Fatal error in launcher: Unable to create process using ..." error. Put me besides those EXE made by pip. (They are made by distutils, and used by pip)"""
import re
import sys
import os
from glob import glob


script_path = os.path.dirname(os.path.realpath(__file__))
real_int_path = sys.executable
_t = script_path.rpartition(os.sep)[0] + os.sep + 'python.exe'
if script_path.lower().endswith('scripts') and os.path.isfile(_t):
    real_int_path = _t

print('real interpreter path: ' + real_int_path)
print()

for i in glob('*.exe'):
    with open(i, 'rb+') as f:
        img = f.read()
        match = re.search(rb'#![a-zA-Z]:\\.+\.exe', img)
        if not match:
            print("can't fix file: " + i)
            continue
        int_path = match.group()[2:].decode()
        int_path_start = match.start() + 2
        int_path_end = match.end()

        if int_path.lower() == real_int_path.lower():
            continue
        print('fix interpreter path: %s in %s' % (int_path, i))
        f.seek(int_path_start)
        f.write(real_int_path.encode())
        f.write(img[int_path_end:])
krrr
la source
1
J'ai eu l'erreur "Impossible de créer le processus" lorsque j'ai essayé d'exécuter eb.exe (partie d'AWS Elastic Beanstalk CLI) et ce petit script a corrigé eb.exe! Cela fonctionne maintenant, merci.
JustAC0der
Cela a fonctionné pour moi, mais seulement après avoir changé le code pour faire correspondre la longueur de real_int_path avec int_path. Je l'ai rembourré avec des espaces comme suggéré par la réponse d'Archimedix.
lou
2

J'ai eu le même problème sur Windows 10, après avoir essayé toutes les solutions précédentes, le problème persiste, j'ai donc décidé de désinstaller mon python 2.7 et d'installer la version 2.7.13 et cela fonctionne parfaitement.

Badr Bellaj
la source
2

Cela peut se produire si vous utilisez un système de fichiers sensible à la casse sous Windows. Vous pouvez dire si c'est le cas s'il y a à la fois un librépertoire et un Librépertoire dans votre venvrépertoire:

> dir

Directory: C:\git\case\sensitive\filesystem\here\venv

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d-----        4/07/2018   4:10 PM                Include
d-----       22/01/2019   7:52 AM                Lib
d-----       22/01/2019   7:52 AM                lib
d-----       22/01/2019   7:52 AM                Scripts
d-----       22/01/2019   7:52 AM                tcl

Pour contourner ce problème (jusqu'à ce qu'il virtualenv.pysoit corrigé: https://github.com/pypa/virtualenv/issues/935 ) fusionnez les deux répertoires lib et rendez la venvcasse insensible:

cd venv
move Lib rmthis
move .\rmthis\site-packages\ lib
rmdir rmthis
fsutil.exe file setCaseSensitiveInfo . disable
cdjc
la source
Je n'avais pas de répertoire 'Lib' et 'lib', mais j'ai quand même rencontré ce problème. Vous pouvez utiliser les éléments suivants pour déterminer directement si le répertoire venv est sensible à la casse fsutil.exe file queryCaseSensitiveInfo .venv. Des informations supplémentaires sur les systèmes de fichiers sensibles à la casse dans Windows peuvent être trouvées sur devblogs.microsoft.com/commandline/…
CodeButcher
1

Veuillez ajouter cette adresse:

C: \ Program Files (x86) \ Python33

dans la variable Windows PATH

Bien que assurez-vous d'abord qu'il s'agit du dossier dans lequel se trouve le fichier exe Python, ajoutez uniquement ce chemin à la variable PATH.

Pour ajouter des adresses dans la variable PATH, accédez à

Panneau de configuration -> Systèmes -> Paramètres système avancés -> Variables d'environnement -> Variables système -> Chemin -> Modifier ->

Ensuite, ajoutez le chemin mentionné ci-dessus et cliquez sur Enregistrer

Samik Banerjee
la source
1

J'ai renommé l'exécutable de python.exepar exemple python27.exe. En ce qui concerne la réponse d' Archimedix, j'ai ouvert mon pip.exe avec un éditeur hexadécimal , fait défiler jusqu'à la fin du fichier et changé python.exele chemin d'accès en python27.exe. Lors de l'édition, assurez-vous de ne pas remplacer les autres informations.

Markus Weber
la source
1

J'ai ajouté ma réponse car j'ai la même erreur lors de la configuration du code source ODDO9 en local et son besoin de l'exe pour s'exécuter pendant l'exécution de l'exe, j'ai la même erreur.

Depuis hier, je configurais oddo 9.0 (section: - "Dépendances Python répertoriées dans le fichier requirements.txt.") Et son besoin d'exécuter PIP exe comme

C: \ YourOdooPath> C: \ Python27 \ Scripts \ pip.exe install -r requirements.txt

Mon chemin oddo est: - D: \ Program Files (x86) \ Odoo 9.0-20151014 Mon emplacement pip est: - D: \ Program Files (x86) \ Python27 \ Scripts \ pip.exe

J'ouvre donc l'invite de commande et je vais au-dessus du chemin oddo et j'essaie d'exécuter pip exe avec cette combinaison, mais pas toujours au-dessus de l'erreur.

  1. D: \ Program Files (x86) \ Python27 \ Scripts \ pip.exe install -r requirements.txt
  2. "D: \ Program Files (x86) \ Python27 \ Scripts \ pip.exe install -r requirements.txt" Python27 \ Scripts \ pip.exe install -r requirements.txt

  3. "Python27 / Scripts / pip.exe install -r requirements.txt"

J'ai résolu mon problème par la réponse @ user4154243, merci pour cela.

Étape 1: Ajouter une variable (si votre chemin n'est pas dans le chemin de la variable).

Étape 2: Accédez à l'invite de commande, ouvrez le chemin oddo où vous avez installé.

Étape 3: exécuter cette commande python -m pip install XXXexécutera et installera les choses.

Ajay2707
la source
1

je résout mon problème dans Windows si vous installez à la fois python2 et python3

vous devez entrer quelqu'un \ Scripts changer tout file.exe en file27.exe , puis il résout

mon D: \ Python27 \ Scripts modifie django-admin.exe en django-admin27.exe pour qu'il le fasse

decemer
la source
Bienvenue chez SO. Veuillez rechercher la mise en forme de votre réponse dans la section d'aide.
Richard Erickson
1

Mon problème exact était (erreur fatale dans le lanceur: impossible de créer un processus à l'aide de "" ") sur Windows 10. J'ai donc accédé au" C: \ Python33 \ Lib \ site-packages "et supprimé le dossier django et les dossiers pip, puis réinstallé django en utilisant pip et mon problème a été résolu.

Norman Pilusa
la source
1

J'ai choisi d'installer Python pour Windows (64 bits) non pas pour tous les utilisateurs, mais juste pour moi.

La réinstallation de Python-x64 et la vérification de l'option avancée "pour tous les utilisateurs" ont résolu le problème de pip pour moi.

Riki137
la source
1

Voici comment je l'ai corrigé.

  1. Téléchargez https://bootstrap.pypa.io/get-pip.py
  2. Activez votre vitalité
  3. Accédez au fichier get-pip.py et tapez "python get-pip.py" sans guillemet.

il réinstallera votre pip dans l'environnement et désinstallera automatiquement la version précédente.

maintenant boom !! installez ce que vous voulez

Mahabub Rahman
la source
0

Essayez de réinstaller en utilisant le lien ci-dessous,

Téléchargez https://bootstrap.pypa.io/get-pip.py

Après le téléchargement, copiez le "get-pip.py" dans le répertoire principal installé par python, puis ouvrez cmd et accédez au répertoire python et tapez "python get-pip.py" (sans guillemets)

Remarque: Assurez-vous également que le répertoire python est défini dans la variable d'environnement.

J'espère que cela pourrait vous aider.

MS Arun
la source
0

Pour moi, ce problème est apparu lorsque j'ai changé le chemin de l'environnement pour pointer vers v2.7 qui pointait initialement vers v3.6 . Après cela, pour exécuter les commandes pip ou virtualenv , je devais python -m pip install XXXcomme mentionné dans les réponses ci-dessous.

Donc, pour me débarrasser de cela, j'ai à nouveau exécuté le programme d' installation v2.7 , choisi l' option de modification et vérifié que l' option d' ajout au chemin était activée et je laissais le programme d'installation s'exécuter. Après cela, tout fonctionne comme il se doit.

MrClan
la source
0

J'ai eu ce problème et les autres correctifs de cette page n'ont pas complètement résolu le problème.

Ce qui a résolu le problème, c'était d'entrer dans mes variables d'environnement système et de regarder le PATH - j'avais désinstallé Python 3 mais l'ancien chemin vers le dossier Python 3 était toujours là. J'utilise uniquement Python 2 sur mon PC et j'ai utilisé Python 2 pour installer pip.

La suppression des références aux dossiers Python 3 inexistants de PATH en plus de la mise à niveau vers la dernière version de a pipcorrigé le problème.

Axesilo
la source
0

J'avais une solution plus simple. En utilisant @apple mais en renommant le fichier .py principal en pip.py, placez-le dans votre dossier de scripts de version python et ajoutez le dossier de scripts à votre chemin pour y accéder globalement. si vous ne voulez pas l'ajouter au chemin, vous devez cd aux scripts, puis exécutez la commande pip.

Sahib Khan
la source
0

Sous Windows j'avais résolu ce problème de la manière suivante:

1) Python désinstallé

2) navigué vers C:\Users\MyName\AppData\Local\Programs(vous devez activer la visibilité des fichiers cachés Afficher les instructions sur les fichiers cachés )

3) Suppression du dossier 'Python'

4) Python installé

côté obscur
la source
Je suis sous Windows 10. J'ai copié le dossier python et écrasé sur un nouvel ordinateur pour gagner du temps sur l'installation de plus de 800 Moctets. Cela a bien fonctionné avant, mais en quelque sorte pas cette fois. J'ai tout essayé ici, seule la solution ultime de Darkside fonctionne pour moi.
HCChen
0

J'ai un problème similaire lorsque je réinstalle mon python, en désinstallant python3.7 et en installant python3.8. Mais je l'ai résolu en supprimant la version précédente du répertoire python. Pour moi, il était situé ici,

C: \ Users \ votre-nom d'utilisateur \ AppData \ Local \ Programs \ Python

J'ai supprimé le dossier nommé Python37 (pour la version précédente) et conserve Python38 (pour la version mise à jour) . Cela a fonctionné car python lui-même semble avoir du mal à trouver le bon répertoire pour vos scripts python.

Roi
la source
0

J'essayais d'installer des packages de site comme numpy, xgboost et ainsi de suite, mais cette erreur s'est produite à chaque fois:

Fatal error in launcher: Unable to create process using

J'ai essayé de nombreuses façons de résoudre ce problème et trouvé celui-ci, qui m'a aidé avec succès:

python -m pip freeze

J'espère que ça aidera quelqu'un aussi.

PS J'ai trouvé cette solution ici: https://stackoverflow.com/a/39733705/10310794

Roman Voyt
la source
0

Vous pouvez supprimer le dossier python précédent et également le chemin des variables d'environnement de votre PC, puis réinstaller python .it sera résolu

user8099291
la source
-2

Au lieu d'appeler directement ipython, il est chargé à l'aide de Python tel que

$ python "chemin complet vers ipython.exe"

Stephen Kim
la source