Корень проблемы заключается в том, что пробелы в shebangs интерпретируются как поставляя дополнительные аргументы для исполняемого файла, поэтому C:\Program Files\Python\python.exeстановится видно , как C:\Programдано в Files\Python\python.exeкачестве аргумента.
Лучшее решение для этого, потому что Windows ЛЮБИТ пробелы в $HOMEкаталоге и Program Filesдругих местах, даже если это действительно может нарушить работу cmd.exe, Powershell и других инструментов, это:
Установите Python C:\Pythonи добавьте C:\Pythonпапку, в которой он находится, python.exeи Scriptsкаталог, в котором он находится, в PATHпеременную среды на уровне системы или пользователя.
Если вам нужен Python 2.7.x и 3.x сосуществовать, установить их в C:\Python27и C:\Python36и C:\Python37и переименовать python.exeв python2.exe, python36.exe, python37.exeи т.д. , и добавить каждый из этих папок и их Scriptsпапок в PATH. Возможно, вы захотите определить, какую из версий Python 3 вы хотите использовать по умолчанию, а также сделать копию в этой папке, python3.exeчтобы обработать любые сценарии, которые используют !#/usr/bin/env python3.
Если в вашем домашнем каталоге пользователя есть пробел, у вас могут возникнуть проблемы, если вы используете pip install --user somepackageсинтаксис. По --userумолчанию это ваш домашний каталог, и в этом случае пространство будет сбивать с толку. Обходной путь описан здесь, но сводится к экспорту PYTHONUSERBASE в вашу среду.
export PYTHONUSERBASE=/myappenv
pip install --user SomePackage
или в Windows (Powershell):
$env:PYTHONUSERBASE='C:\PythonPkgs'
pip install --user SomePackage
env, как делает аскер.