ดังที่ได้กล่าวมานี้เป็นที่รู้จักข้อผิดพลาดกับ pip & python ติดตั้งกับ homebrew
หากคุณสร้าง~/.pydistutils.cfg
ไฟล์ด้วยคำสั่ง "empty prefix" มันจะแก้ไขปัญหานี้ได้ แต่มันจะทำให้การทำงานของ pip ผิดปกติ
จนกว่าข้อผิดพลาดนี้จะได้รับการแก้ไขอย่างเป็นทางการหนึ่งในตัวเลือกจะสร้างสคริปต์ทุบตีของคุณเองที่จะจัดการกับกรณีนี้:
#!/bin/bash
name=''
target=''
while getopts 'n:t:' flag; do
case "${flag}" in
n) name="${OPTARG}" ;;
t) target="${OPTARG}" ;;
esac
done
if [ -z "$target" ];
then
echo "Target parameter must be provided"
exit 1
fi
if [ -z "$name" ];
then
echo "Name parameter must be provided"
exit 1
fi
# current workaround for homebrew bug
file=$HOME'/.pydistutils.cfg'
touch $file
/bin/cat <<EOM >$file
[install]
prefix=
EOM
# end of current workaround for homebrew bug
pip install -I $name --target $target
# current workaround for homebrew bug
rm -rf $file
# end of current workaround for homebrew bug
สคริปต์นี้ล้อมคำสั่งของคุณและ:
- ยอมรับพารามิเตอร์ชื่อและเป้าหมาย
- ตรวจสอบว่าพารามิเตอร์เหล่านั้นว่างเปล่า
- สร้าง
~/.pydistutils.cfg
ไฟล์ด้วยคำสั่ง "empty prefix" ในนั้น
- ดำเนินการคำสั่ง pip ของคุณด้วยพารามิเตอร์ที่ให้ไว้
- ลบ
~/.pydistutils.cfg
ไฟล์
สคริปต์นี้สามารถเปลี่ยนแปลงและปรับให้เข้ากับความต้องการของคุณ แต่คุณจะได้รับแนวคิด และช่วยให้คุณสามารถเรียกใช้คำสั่งของคุณโดยไม่ต้องเบรก pip หวังว่าจะช่วย :)