शबंग का लक्ष्य बदलो


0

मैं लक्ष्य बनाना चाहूंगा python3 शबंगों में इस्तेमाल किया जा सकता है। उदाहरण के लिए। पहली पंक्ति का उपयोग करें #!/usr/bin/env python3

मैंने क्या कोशिश की:

  • setenv python3 PATH_TO_BINARY, इसे भी डालें .cshrc, गूंज $ python3 भी रास्ता दिखाता है

  • / bin / env NAME = python3 PATH_TO_BINARY, python3 को खोलता है, लेकिन शेबंग के उपयोग की अनुमति नहीं देता है। / Bin / env python3 = PATH_TO_BINARY के लिए समान

यदि यह मायने रखता है, तो मैं निम्नलिखित समस्या को हल करना चाहूंगा:

मैं एक पर काम कर रहा हूँ rhel 6 सिस्टम मैं सीधे स्थापित नहीं कर सकता था python3 हालाँकि मैं इसे इस्तेमाल कर सकता हूँ anaconda3 जो एक सुलभ नेटवर्क संसाधन पर स्थापित है। पूर्ण पथ के साथ शेबंग को रखने के बजाय मैं उचित रूप से python3 पथ को पोर्टेबल कोड लिखना चाहता हूं।

जवाबों:


2

इस मामले में, यह नहीं है #! -लाइन आपको बदलनी चाहिए, लेकिन आपकी $PATH

#!/usr/bin/env python3

इसका यह प्रभाव है कि python3 दुभाषिया आपके में सूचीबद्ध निर्देशिकाओं के लिए खोजा जाएगा $PATH चर।

अगर python3 में स्थापित है, उदा। $HOME/local/bin, तो इस निर्देशिका में मौजूद होना चाहिए $PATH से पहले किसी भी अन्य निर्देशिका जिसमें एक भी हो सकती है python3 दुभाषिया, अन्यथा यह कि आपके स्वयं के बजाय एक का उपयोग किया जाएगा $HOME/local/bin

इसलिए आपको सेट करने की आवश्यकता है

PATH="$HOME/local/bin:$PATH"

या तो कमांड लाइन पर, या शेल आरंभीकरण स्क्रिप्ट में ( ~/.bashrc उदाहरण के लिए)। सी-शेल उपयोगकर्ता इसे अलग तरह से करते हैं ...

set path = ($HOME/local/bin $path)

सामान्य तौर पर, #! -लाइन की पहचान दुभाषी स्क्रिप्ट के लिए, यानी फ़ाइल को पार्स करने और चलाने के लिए कौन से प्रोग्राम का उपयोग करना है। ए sed उदाहरण के लिए स्क्रिप्ट का उपयोग हो सकता है #!/usr/bin/sed -f


वह यह था। मेरे प्रश्न का उत्तर देने के लिए धन्यवाद भले ही मैंने वास्तव में गलत पूछा हो।
magu_
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.