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.exesą postrzegane jako C:\Programpodane Files\Python\python.exejako argument.
Najlepszym rozwiązaniem tego jest, ponieważ Windows LOVES spacje w $HOMEkatalogu i Program Filesinnych miejscach, nawet jeśli naprawdę może to popsuć w cmd.exe oraz Powershell i innych narzędziach:
Zainstaluj Python C:\Pythoni dodaj C:\Pythonfolder, w którym python.exemieszka, oraz Scriptskatalog, który w nim mieszka, do PATHzmiennej środowiskowej na poziomie systemu lub użytkownika.
Jeśli potrzebujesz Python 2.7.x 3.x współistnieć, zainstalować je C:\Python27i C:\Python36i C:\Python37i zmienić nazwę python.exena python2.exe, python36.exe, python37.exe, etc i dodać każdy z tych folderów i ich Scriptsfoldery 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.exeaby 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 somepackageskładni. W --userdomyś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.