รากของปัญหาคือการที่ช่องว่างใน 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ในขณะที่ผู้ถามกำลังทำอยู่