जैसा कि अन्य उल्लेख किया गया है, यह होमबॉव के साथ स्थापित पाइप और अजगर के साथ बग को जाना जाता है।
यदि आप ~/.pydistutils.cfg
"खाली उपसर्ग" निर्देश के साथ फ़ाइल बनाते हैं तो यह इस समस्या को ठीक कर देगा लेकिन यह सामान्य पाइप संचालन को तोड़ देगा।
जब तक इस बग को आधिकारिक रूप से संबोधित नहीं किया जाता है, तब तक विकल्पों में से एक अपनी स्वयं की बैश स्क्रिप्ट बनाने के लिए होगा जो इस मामले को हैंडल करेगा:
#!/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
इसमें "खाली उपसर्ग" निर्देश के साथ फाइल बनाता है
- प्रदान किए गए मापदंडों के साथ अपने पाइप कमांड को निष्पादित करता है
~/.pydistutils.cfg
फ़ाइल निकालता है
इस स्क्रिप्ट को बदला जा सकता है और अपनी आवश्यकताओं को पूरा करने के लिए अनुकूलित किया जा सकता है, लेकिन आपको विचार मिल सकता है। और यह आपको ब्रेकिंग पाइप के बिना अपनी कमांड चलाने की अनुमति देता है। आशा करता हूँ की ये काम करेगा :)