รากของปัญหาคือการที่ช่องว่างใน shebangs จะถูกตีความเป็นข้อโต้แย้งการจัดหาเพิ่มเติมเพื่อปฏิบัติการเพื่อให้C:\Program Files\Python\python.exe
ได้รับการมองว่าเป็นC:\Program
ให้Files\Python\python.exe
เป็นอาร์กิวเมนต์
ทางออกที่ดีที่สุดสำหรับเรื่องนี้เพราะช่องว่าง Windows LOVES ใน$HOME
ไดเรกทอรีและProgram Files
สถานที่อื่น ๆ แม้ว่ามันจะสามารถแบ่งสิ่งต่าง ๆ ใน cmd.exe และ Powershell และเครื่องมืออื่น ๆ ได้:
ติดตั้ง Python C:\Python
และเพิ่มC:\Python
โฟลเดอร์ที่มีpython.exe
ชีวิตอยู่และScripts
ไดเรกทอรีที่อยู่ภายในกับPATH
ตัวแปรสภาพแวดล้อมของคุณในระดับระบบหรือผู้ใช้
หากคุณต้องการ 2.7.x งูหลามและ 3.x ที่จะอยู่ร่วมติดตั้งพวกเขาเข้าไปในC:\Python27
และC:\Python36
และC:\Python37
และเปลี่ยนชื่อpython.exe
เพื่อpython2.exe
, python36.exe
, python37.exe
ฯลฯ และเพิ่มแต่ละโฟลเดอร์เหล่านั้นของพวกเขาและโฟลเดอร์เข้าไปในScripts
PATH
คุณอาจต้องการตรวจสอบว่างูหลาม 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
ในขณะที่ผู้ถามกำลังทำอยู่