Корень проблемы заключается в том, что пробелы в 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
, как делает аскер.