Błąd krytyczny w programie uruchamiającym: Nie można utworzyć procesu za pomocą „” C: \ Program Files (x86) \ Python33 \ python.exe „” C: \ Program Files (x86) \ Python33 \ pip.exe „”

211

Wyszukiwanie w sieci wydaje się być problemem spowodowanym przez spacje w ścieżce instalacyjnej Pythona.

Jak zabrać się pipdo pracy bez konieczności ponownej instalacji wszystkiego na ścieżce bez spacji?

Archimedix
źródło
1
Czy próbowałeś używać krótkich nazw ścieżek dla plików programów (X86)? np. „C: \ PROGRA ~ 2 \ Python33 \ python.exe”
Shadow9043,
4
Problem polega na tym, że po pipzainstalowaniu użyje oryginalnej, długiej nazwy, którą otrzymuje od systemu. Zobacz moją odpowiedź poniżej.
Archimedix
2
Powtarzalne w Pythonie 2.7 i Windows 10 Preview kompilacja 10074
Csaba Toth
2
@CsabaToth, muszę poprawić twoją edycję: podwójne cudzysłowy były prawidłowe, tak jak przed zmianą; oni właśnie pomijając apostrofów: Verbatim błędu: Fatal error in launcher: Unable to create process using '""C:\Program Files (x86)\Python33\python.exe"" "C:\Program Files (x86)\Python33\Scripts\pip.exe" '. Wygląda dziwnie, ale tak już jest.
Archimedix,
Korzystałem z Powershell (Admin) i działa za pierwszym razem.
Aakash Choubey,

Odpowiedzi:

455

wygląda na to że

python -m pip install XXX 

i tak będzie działać (pracował dla mnie) (patrz link użytkownika 474491 )

użytkownik4154243
źródło
9
Czyni to przyjętą odpowiedź, chociaż jest to raczej obejście (lub alternatywne podejście) niż faktyczna poprawka, ale w każdym razie ma ona bardziej uniwersalne zastosowanie.
Archimedix
2
@ user4154243, to działa, ale czy możesz wyjaśnić, co faktycznie robi? Czy są jakieś konsekwencje korzystania z tego przy instalowaniu każdej innej biblioteki?
multigoodverse
1
ratujesz mnie, próbowałem skonfigurować nieparzyste i jego potrzebę skonfigurowania pytona. Próbowałem 5 6 godzin dla tego samego problemu, w końcu jego praca z twojego pomysłu. wielkie dzięki. Dodam również swoją odpowiedź za niepowiązane prace.
Ajay2707
1
Miałem ten problem w virtualenv, użyłem twojego rozwiązania do zainstalowania najnowszego pipa, co następnie pozwoliło na normalne użycie polecenia: python -mpip install pip --upgrade
tr00st
4
jest to obejście problemu i nie powinna być przyjętą odpowiedzią
Raiden Core
75

Przynajmniej w systemie Windows pipprzechowuje ścieżkę wykonania w pliku wykonywalnym, pip.exegdy jest on zainstalowany.

Edytuj ten plik za pomocą edytora szesnastkowego lub WordPada (musisz zapisać go jako zwykły tekst, aby zachować dane binarne), zmień ścieżkę na Python z cudzysłowami i spacjami takimi jak to:

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

do ścieżki ucieczki bez spacji i cudzysłowów i padu ze spacjami (kropki na końcu powinny być spacjami):

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

W przypadku „C: \ Program Files” ta ścieżka to prawdopodobnie „C: \ Progra ~ 1” (skrócone nazwy ścieżek w notacji DOS / Windows 3.x używają tyldy i liczb). System Windows zapewnia tę alternatywną notację dla kompatybilności wstecznej z aplikacjami DOS / Windows 3.x.

Zauważ, że ponieważ jest to plik binarny, nie powinieneś zmieniać rozmiaru pliku, który może uszkodzić plik wykonywalny, stąd wypełnianie.

Zapisz z uprawnieniami administratora, upewnij się, że jest faktycznie zapisany w docelowej lokalizacji i spróbuj ponownie.

Konieczne może być również ustawienie PATHzmiennej, aby użyć ~zapisu dla ścieżki do pip.

Archimedix
źródło
1
Nie miałem na myśli zmiennej środowiskowej. Miałem tylko na myśli, gdzie pojawił się ten ciąg, "#!"C:\Program Files (x86)\Python33\python.exe"ale byłem w stanie dowiedzieć się, gdzie on był, używając edytora szesnastkowego. Jednak przy użyciu Sublime Text taki ciąg znaków nie był widoczny. Czy potrafisz wymyślić jakiś powód, dla którego ścieżka jest wyświetlana w Wordpadzie, a nie w Podniosłym tekście?
Sohaib
2
WordPad to głupi edytor tekstu, Sublime jest prawdopodobnie zbyt mądry i, jak sądzę, pokazuje szesnastkowy zrzut zawartości.
Archimedix
6
To zadziałało dla mnie. Mój oryginalny ciąg był #!"C:\Program Files\Python3.4\python.exe", więc zmieniłem go #!C:\Progra~1\Python3.4\python.exe i zadziałało. Udało mi się edytować plik za pomocą Notepad ++. Ten ciąg znaków pojawia się na końcu pliku, na końcu długiej linii.
Scott Weldon,
3
To zadziałało. Po prostu odinstalowałem Pythona. Następnie ponownie zainstalowany; po ponownej instalacji właśnie zmieniłem folder instalacyjny z C:\Program Files (x86)\Python34na C:\Progra~2\Python34. (jeśli nie chcesz zajmować się edytorem szesnastkowym lub zmianą pliku binarnego)
Trent
2
„W systemie Windows przynajmniej pip przechowuje ścieżkę wykonania w wykonywalnym pliku pip.exe, gdy jest zainstalowany.” Teraz TO jest głupie. - Kosztowało mnie to pół godziny, żeby to rozgryźć.
plocks
36

mając te same problemy, które przeczytałem w https://pip.pypa.io/en/latest/installing.html#install-pip, że aby zaktualizować pip to:

python -m pip install -U pip

Więc zrobiłem (na przykład)

python -m pip install virtualenv

I zadziałało! Możesz więc zrobić to samo, będąc „virtualenv” innym pakietem, który chcesz.

MiguelCldn
źródło
4
Wystąpił problem z wymienionym błędem i to rozwiązanie działało dla mnie! Byłem w stanie nawet użyć „install install virtualenv” i przestałem używać „python -m pip” po aktualizacji do najnowszej wersji pip. Dzięki!
steve-gregory
18

python -m pip

naprawdę działa na problem. Fatal error in launcher: Unable to create process using '"'Pracował w systemie Windows 10

Joel K Thomas
źródło
16

Miałem podobny problem i naprawiłem go dla mnie.

python -m pip install --upgrade pip 

Tak było w systemie Windows, a ścieżka do python wewnątrz pip.exe była niepoprawna. Zobacz odpowiedź Archimedix, aby uzyskać więcej informacji na temat ścieżki.

Johan Gov
źródło
2
Dzięki! Może być konieczne dodanie: --force
Masood Lapeh
Mam już zainstalowaną najnowszą wersję. Użyłem python -m pip install pip == 9.0.0, aby przejść do starej wersji, a następnie wykonać aktualizację, aby naprawić pip.exe
Stefan
5

Oto jak to rozwiązałem:

  1. otwórz pip.exew 7zip i rozpakuj __main__.pydo folderu Python \ Scripts.

    W moim przypadku tak było C:\Program Files (x86)\Python27\Scripts

  2. Zmień nazwę __main__.pynapip.py

  3. Uruchom! python pip.py install something

EDYTOWAĆ:

Jeśli chcesz to zrobić pip install somethingz dowolnego miejsca, zrób to również:

  1. zmień nazwę pip.py na pip2.py (aby uniknąć błędów importu pip)

  2. zrobić C:\Program Files (x86)\Python27\pip.batz następującą zawartością:

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

  1. dodaj C:\Program Files (x86)\Python27do swojej ŚCIEŻKI (jeśli jeszcze nie jest)

  2. Uruchom! pip install something

jabłko 16
źródło
4

Jest to znany błąd, gdy na virtualenvścieżce jest spacja . Korekta została wprowadzona i będzie dostępna w następnej wersji.

użytkownik474491
źródło
5
Naprawiono błąd Pip. Aktualizacja przez uruchomieniepython -m pip install -U pip
StuartLC,
13
Nie, na razie w Python34 nadal występuje błąd!
Martin F
Nadal problem: Python36
Masood Lapeh
1
wciąż problem: Python37
jmn
nadal mam problem: python 3.6.6
user2386301
3

miałem ten sam problem i zrobiłem aktualizację pip za pomocą następujących, a teraz działa dobrze. python -m pip install --upgrade pip

Amardev Joynauth
źródło
2

Napisałem skrypt, aby załatać te pliki exe. Ale najlepszym sposobem jest naprawienie samego distutil.

"""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
źródło
1
Miałem błąd „Nie można utworzyć procesu”, gdy próbowałem uruchomić eb.exe (część interfejsu AWS Elastic Beanstalk CLI) i ten mały skrypt naprawił eb.exe! Działa teraz, dzięki.
JustAC0der,
To działało dla mnie, ale dopiero po zmianie kodu, aby dopasować długość z real_int_path do int_path. Wypełniłem go spacjami, jak sugeruje odpowiedź Archimedix.
lou
2

Miałem ten sam problem w systemie Windows 10, po wypróbowaniu wszystkich poprzednich rozwiązań problem nadal występuje, więc postanowiłem odinstalować moje python 2.7 i zainstalować wersję 2.7.13 i działa idealnie.

Badr Bellaj
źródło
2

Może się to zdarzyć, jeśli używasz systemu plików z rozróżnianiem wielkości liter w systemie Windows. Można powiedzieć, czy to jest w przypadku, gdy istnieje zarówno libkatalog i Libkatalog w venvkatalogu:

> 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

Aby obejść ten problem (dopóki nie virtualenv.pyzostanie naprawiony: https://github.com/pypa/virtualenv/issues/935 ), połącz dwa katalogi lib i venvrozróżnij wielkość liter:

cd venv
move Lib rmthis
move .\rmthis\site-packages\ lib
rmdir rmthis
fsutil.exe file setCaseSensitiveInfo . disable
cdjc
źródło
Nie miałem katalogu „Lib” i „lib”, ale nadal napotkałem ten problem. Aby bezpośrednio ustalić, czy w katalogu venv rozróżniana jest wielkość liter, można użyć następujących elementów fsutil.exe file queryCaseSensitiveInfo .venv. Dodatkowe informacje na temat systemów plików z rozróżnianiem wielkości liter w systemie Windows można znaleźć na stronie devblogs.microsoft.com/commandline/…
CodeButcher
1

Dodaj ten adres:

C: \ Program Files (x86) \ Python33

w zmiennej Windows PATH

Chociaż najpierw upewnij się, że jest to folder, w którym znajduje się plik exe Pythona, a następnie dodaj tę ścieżkę tylko do zmiennej PATH.

Aby dołączyć adresy w zmiennej PATH, przejdź do

Panel sterowania -> Systemy -> Zaawansowane ustawienia systemu -> Zmienne środowiskowe -> Zmienne systemowe -> Ścieżka -> Edytuj ->

Następnie dołącz wyżej wspomnianą ścieżkę i kliknij Zapisz

Samik Banerjee
źródło
1

Zmieniłem nazwę pliku wykonywalnego python.exena np python27.exe. W odniesieniu do odpowiedzi Archimedix otworzyłem mój plik pip.exe za pomocą edytora szesnastkowego , przewinąłem do końca pliku i zmieniłem python.exeścieżkę na python27.exe. Podczas edycji upewnij się, że nie zastępujesz innych informacji.

Markus Weber
źródło
1

Dodałem swój anwer, ponieważ otrzymuję ten sam błąd podczas konfigurowania kodu źródłowego ODDO9 w wersji lokalnej i jego potrzeba do uruchomienia exe podczas uruchamiania exe, mam ten sam błąd.

Od wczoraj konfigurowałem Oddo 9.0 (sekcja: „Zależności w Pythonie wymienione w pliku wymagania.txt.”) I jego potrzebę uruchamiania PIP exe jako

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

Moja ścieżka do nieparzystych to: - D: \ Program Files (x86) \ Odoo 9.0-20151014 Moja lokalizacja pip to: - D: \ Program Files (x86) \ Python27 \ Scripts \ pip.exe

Więc otwieram wiersz polecenia i przechodzę do powyższej ścieżki nieparzystej i próbuję uruchomić pip exe z tymi kombinacjami, ale nie zawsze podano powyżej błędu.

  1. D: \ Program Files (x86) \ Python27 \ Scripts \ pip.exe install -r wymagania.txt
  2. „D: \ Program Files (x86) \ Python27 \ Scripts \ pip.exe install -r wymagania.txt” Python27 \ Scripts \ pip.exe install -r wymagania.txt

  3. „Python27 / Scripts / pip.exe install -r wymagania.txt”

Rozwiązałem problem przez odpowiedź @ user4154243, dzięki za to.

Krok 1: Dodaj zmienną (jeśli twoja ścieżka nie znajduje się w ścieżce zmiennej).

Krok 2: Przejdź do wiersza poleceń, otwórz ścieżkę nieparzystą w miejscu instalacji.

Krok 3: uruchom to polecenie python -m pip install XXXuruchomi i zainstaluje rzeczy.

Ajay2707
źródło
1

Rozwiązuję problem w systemie Windows, jeśli instalujesz zarówno Python2, jak i Python3

musisz wprowadzić komuś \ Skrypty zmień wszystkie file.exe na file27.exe , a następnie rozwiąż

mój D: \ Python27 \ Scripts edytuj django-admin.exe do django-admin27.exe, więc gotowe

decemer
źródło
Witamy w SO. Sformatuj swoją odpowiedź w sekcji pomocy.
Richard Erickson,
1

Moim dokładnym problemem był (Błąd krytyczny w programie uruchamiającym: Nie można utworzyć procesu przy użyciu „”) w systemie Windows 10. Więc przeszedłem do „C: \ Python33 \ Lib \ site-packages” i usunąłem folder django i foldery pip, a następnie ponownie zainstalowałem django za pomocą pip i mój problem został rozwiązany.

Norman Pilusa
źródło
1

Zdecydowałem się zainstalować Python dla Windows (64-bitowy) nie dla wszystkich użytkowników, ale tylko dla mnie.

Ponowna instalacja Python-x64 i zaznaczenie opcji zaawansowanej „dla wszystkich użytkowników” rozwiązało problem pip.

Riki137
źródło
1

Oto jak to naprawiłem.

  1. Pobierz https://bootstrap.pypa.io/get-pip.py
  2. Aktywuj swój vitualenv
  3. Przejdź do pliku get-pip.py i wpisz „python get-pip.py” bez cudzysłowu.

ponownie zainstaluje pip w środowisku i automatycznie odinstaluje poprzednią wersję.

teraz bum !! zainstaluj co tylko chcesz

Mahabub Rahman
źródło
0

Spróbuj zainstalować ponownie, korzystając z poniższego linku,

Pobierz https://bootstrap.pypa.io/get-pip.py

Po pobraniu skopiuj plik „get-pip.py” do katalogu głównego zainstalowanego w Pythonie, a następnie otwórz cmd i przejdź do katalogu python i wpisz „python get-pip.py” (bez cudzysłowów)

Uwaga: Upewnij się także, że katalog python jest ustawiony w zmiennej środowiskowej.

Mam nadzieję, że to może pomóc.

MS Arun
źródło
0

Dla mnie ten problem pojawił się, gdy zmieniłem ścieżkę środowiska na v2.7, która początkowo wskazywała na v3.6 . Następnie, aby uruchomić komendy pip lub virtualenv , musiałem python -m pip install XXXjak wspomniano w odpowiedziach poniżej.

Aby się tego pozbyć, uruchomiłem ponownie instalator v2.7 , wybrałem opcję zmiany i upewniłem się, że opcja dodawania do ścieżki jest włączona i pozwól instalatorowi działać. Potem wszystko działa tak, jak powinno.

MrClan
źródło
0

Miałem ten problem, a inne poprawki na tej stronie nie rozwiązały go w pełni.

To, co rozwiązało problem, dotyczyło moich zmiennych środowiskowych systemu i patrzenia na ŚCIEŻKĘ - odinstalowałem Python 3, ale wciąż była tam stara ścieżka do folderu Python 3. Używam tylko Pythona 2 na komputerze i użyłem Pythona 2 do instalacji pipa.

Usunięcie odwołania do nieistniejących folderów Python 3 z PATH oprócz aktualizacji do najnowszej wersji pipnaprawiło problem.

Axesilo
źródło
0

Miałem prostsze rozwiązanie. Używając @apple sposób, ale zmień nazwę main .py na pip.py, a następnie umieść go w folderze skryptów w wersji Python i dodaj folder skryptów do ścieżki, aby uzyskać do niego dostęp globalnie. jeśli nie chcesz dodawać go do ścieżki, musisz wykonać cd do skryptów, a następnie uruchomić polecenie pip.

Sahib Khan
źródło
0

W systemie Windows rozwiązałem ten problem w następujący sposób:

1) odinstalował Python

2) nawigowany do C:\Users\MyName\AppData\Local\Programs(należy włączyć widoczność ukrytych plików Pokaż instrukcję ukrytych plików )

3) usunięto folder „Python”

4) zainstalowany Python

ciemna strona
źródło
Korzystam z systemu Windows 10. Skopiowałem folder python i nadpisałem go na nowym komputerze, aby zaoszczędzić czas na instalacji ponad 800 MB bajtów. To działało wcześniej dobrze, ale jakoś nie tym razem. Próbowałem wszystkiego tutaj, tylko najlepsze rozwiązanie Darkside działa dla mnie.
HCChen
0

Mam podobny problem podczas ponownej instalacji Pythona, odinstalowując Python3.7 i instalując Python3.8. Ale rozwiązałem to, usuwając poprzednią wersję katalogu python. Dla mnie to tutaj się znajdowało,

C: \ Users \ twoja-nazwa użytkownika \ AppData \ Local \ Programs \ Python

Usunąłem folder o nazwie Python37 (dla poprzedniej wersji) i zachowuję Python38 (dla zaktualizowanej wersji) . Działa to, ponieważ sam Python wydaje się mieć problem ze znalezieniem odpowiedniego katalogu dla skryptów Pythona.

Król
źródło
0

Próbowałem zainstalować niektóre pakiety witryn, takie jak numpy, xgboost itd., Ale ten błąd pojawiał się za każdym razem:

Fatal error in launcher: Unable to create process using

Wypróbowałem wiele sposobów rozwiązania tego problemu i znalazłem ten, który pomógł mi:

python -m pip freeze

Mam nadzieję, że to też komuś pomoże.

PS Znalazłem to rozwiązanie tutaj: https://stackoverflow.com/a/39733705/10310794

Roman Voyt
źródło
0

Możesz usunąć poprzedni folder python, a także ścieżkę zmiennej środowiskowej z komputera, a następnie ponownie zainstalować python .it zostanie rozwiązany

użytkownik8099291
źródło
-2

Zamiast bezpośrednio wywoływać ipython, jest ładowany przy użyciu Pythona, takiego jak

$ python „pełna ścieżka do ipython.exe”

Stephen Kim
źródło