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.exe
dướ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 $HOME
thư mục Program Files
và 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:\Python
và thêm C:\Python
thư mục nơi python.exe
sống và thư mục Scripts
sống bên trong nó vào PATH
biế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:\Python27
và C:\Python36
và C:\Python37
và đổ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ọ Scripts
thư 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 somepackage
cú 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.