Przyczyną problemu jest to, że spacje w shebangach są interpretowane jako dostarczające dodatkowe argumenty do pliku wykonywalnego, więc C:\Program Files\Python\python.exe
są postrzegane jako C:\Program
podane Files\Python\python.exe
jako argument.
Najlepszym rozwiązaniem tego jest, ponieważ Windows LOVES spacje w $HOME
katalogu i Program Files
innych miejscach, nawet jeśli naprawdę może to popsuć w cmd.exe oraz Powershell i innych narzędziach:
Zainstaluj Python C:\Python
i dodaj C:\Python
folder, w którym python.exe
mieszka, oraz Scripts
katalog, który w nim mieszka, do PATH
zmiennej środowiskowej na poziomie systemu lub użytkownika.
Jeśli potrzebujesz Python 2.7.x 3.x współistnieć, zainstalować je C:\Python27
i C:\Python36
i C:\Python37
i zmienić nazwę python.exe
na python2.exe
, python36.exe
, python37.exe
, etc i dodać każdy z tych folderów i ich Scripts
foldery do PATH
. Możesz określić, która z wersji Pythona 3 ma być „domyślna”, a także wykonać kopię w tym folderze, python3.exe
aby obsłużyć wszystkie używane skrypty !#/usr/bin/env python3
.
Jeśli w katalogu domowym użytkownika znajduje się spacja, mogą wystąpić problemy, jeśli użyjesz pip install --user somepackage
składni. W --user
domyślnie do katalogu domowego, a przestrzeń wyłączy się, co w tym przypadku również. To obejście jest opisane tutaj, ale sprowadza się do wyeksportowania PYTHONUSERBASE do twojego środowiska.
export PYTHONUSERBASE=/myappenv
pip install --user SomePackage
lub w systemie Windows (Powershell):
$env:PYTHONUSERBASE='C:\PythonPkgs'
pip install --user SomePackage
env
, tak jak pytający.