Nguyên nhân của vấn đề là các khoảng trắng trong shebang được hiểu là cung cấp các đối số bổ sung cho một tệp thực thi, do đó C:\Program Files\Python\python.exeđược xem như C:\Programđược đưa ra Files\Python\python.exedưới dạng đối số.
Giải pháp tốt nhất cho việc này, bởi vì Windows LOVES không gian trong $HOMEthư mục Program Filesvà các nơi khác mặc dù nó thực sự có thể phá vỡ mọi thứ trong cmd.exe và Powershell và các công cụ khác, là:
Cài đặt Python vào C:\Pythonvà thêm C:\Pythonthư mục nơi python.exesống và thư mục Scriptssống bên trong nó vào PATHbiến môi trường của bạn ở cấp độ hệ thống hoặc người dùng.
Nếu bạn cần Python 2.7.x và 3.x để cùng tồn tại, cài đặt chúng vào C:\Python27và C:\Python36và C:\Python37và đổi tên python.exeđể python2.exe, python36.exe, python37.exe, vv và thêm mỗi của các thư mục và họ Scriptsthư mục vào PATH. Bạn có thể muốn xác định phiên bản Python 3 nào bạn muốn là "mặc định" và cũng tạo một bản sao trong thư mục đó python3.exeđể xử lý bất kỳ tập lệnh nào sử dụng !#/usr/bin/env python3.
Nếu thư mục nhà người dùng của bạn có một khoảng trắng trong đó, bạn cũng có thể gặp sự cố nếu bạn sử dụng pip install --user somepackagecú pháp. Mặc --userđịnh cho thư mục nhà của bạn và không gian cũng sẽ tăng mọi thứ trong trường hợp này. Cách giải quyết được mô tả ở đây nhưng tập trung vào việc xuất PYTHONUSERBASE sang môi trường của bạn.
export PYTHONUSERBASE=/myappenv
pip install --user SomePackage
hoặc trong Windows (Powershell):
$env:PYTHONUSERBASE='C:\PythonPkgs'
pip install --user SomePackage
env, như người hỏi đang làm.