2011-05-28 15 views
6

जब मैं कमांडलाइन (ubuntu से कम) से मेरे अजगर अनुप्रयोगों को चलाने के लिए चाहते हैं मैं निर्देशिका जहां स्रोत कोड app.py है में हो सकता है और आदेश के साथ एप्लिकेशन को चलाने के लिए है में एक आवेदन या स्क्रिप्ट बारी
एक शेल कमांड

python app.py

मैं इसे (कैसे यह पारंपरिक किया जाता है) कमांड के साथ मनमाना निर्देशिका से आवेदन को चलाने के लिए कर सकते हैं कैसे: app? इसी तरह आप ls, mkdir और अन्य आदेश टाइप करते हैं?

धन्यवाद

उत्तर

3

निर्देशिका है कि स्क्रिप्ट अपना रास्ता करने के लिए है जोड़ें, यह निष्पादन योग्य बनाने के लिए, और एक उचित कुटिया पंक्ति जोड़ें।

अपने .bashrc में:

PATH=$PATH:/dir/to/the/script 

निष्पादन: फिर

#!/usr/bin/env python 

, कहीं से भी, आप:

chmod +x myscript.py 

स्क्रिप्ट के शीर्ष पर, मामला पंक्ति जोड़ें बस करें:

myscript.py 

(ध्यान दें कि आपको एक .py प्रत्यय की आवश्यकता नहीं है, इसे कुछ भी कहा जा सकता है, उदा। app यदि आपके पास उचित शेबांग लाइन है)। खोल में

chmod +x app.py 

फोन करके

#!/usr/bin/env python 
  • अपनी फ़ाइल निष्पादन करें:

  • 8
    1. अपनी फ़ाइल की शुरुआत में एक shebang line जोड़ें।

    2. PATH पर्यावरण परिवर्तक में शामिल कुछ स्थान पर ले जाएं और इसे app पर पुनर्नामित करें। वैकल्पिक रूप से, अपने .bash_profile करने के लिए लाइन

      export PATH=$PATH:/path/to/app 
      

      जोड़कर निर्देशिका PATH वातावरण चर को app युक्त के पथ जोड़ें।

    +0

    मुझे .bash_profile – xralf

    +0

    @xralf के बजाय .bashrc का उपयोग करना पड़ा: मैं वास्तव में इसके लिए गलत जगह '.bashrc' मानता हूं, क्योंकि आप 'पथ' चर (जो काम करता है) में पथ के एकाधिक उदाहरण के साथ समाप्त होगा , लेकिन व्यर्थ लगता है)। मुझे नहीं पता कि क्यों '.bash_profile' आपके लिए काम नहीं करता है - शायद इसे उबंटू पर' .profile 'कहा जाता है, या आपका लॉगिन खोल' bash' (संभावना नहीं है) या उबंटू आपके लॉगिन खोल को निष्पादित नहीं करता है एक्स लॉगिन –

    0

    मैं बहुत यकीन है कि आप chmod +x के माध्यम से स्क्रिप्ट निष्पादन योग्य बनाने के लिए और अपने सिस्टम से पथ चर में रख करने के लिए है हूँ।

    2
    1. एक कुटिया जोड़ें: #!/usr/bin/python या #!/usr/bin/python3 (आप python -B उपयोग कर सकते हैं .pyc फ़ाइलों की पीढ़ी को रोकने के लिए है, जिसके कारण मैं /usr/bin/env उपयोग न करें)

    2. : फ़ाइल के शीर्ष पंक्ति के रूप में
    3. यह निष्पादन करें: आप chmod +x app.py

    4. (वैकल्पिक) करने की आवश्यकता होगी निदेशक जोड़े पथ के लिए टॉरी, तो इसे कहीं भी कॉल कर सकते हैं: अपने निष्पादन योग्य के साथ अपनी $PATH पर्यावरण चर में एक निर्देशिका जोड़ें। आप ऐसा कैसे करते हैं, आपके शेल पर निर्भर करता है, लेकिन या तो export PATH=$PATH:/home/you/some/path/to/myscripts (उदा। लिनक्स डिस्ट्रोज़ जो बैश का उपयोग करते हैं) या setenv PATH $PATH:/home/you/some/path/to/myscripts (उदा। मैक ओएस एक्स में टीसीएसएच)। आप अपने .bashrc या जो कुछ भी स्टार्टअप स्क्रिप्ट आपके पास है, वरना आप इस चरण को हर बार जब आप में लॉग इन करने को दोहराने के लिए होगा में उदाहरण के लिए इस डाल करने के लिए, चाहते हैं।

    app.pymyscripts में होने की आवश्यकता होगी (या जो भी आप इसे नाम दें) फ़ोल्डर। आपको इसे app.py पर कॉल करने की भी आवश्यकता नहीं है, लेकिन आप इसे app का नाम बदल सकते हैं।

    यदि आप चरण # 3 को छोड़ना चाहते हैं, तो आप इसे चलाने के लिए ./app कर सकते हैं यदि आप एक ही निर्देशिका में हैं।

    1

    शायद आप के बजाय पथ

    chmod +x app.py 
    ln ~app.py /opt/local/bin/app 
    

    के लिए एक और स्थान को शामिल करने की अपनी फ़ाइल स्थान को सिमलिंक करना चाहते हैं ... यह सोचते हैं कि/opt/स्थानीय/बिन आपके रास्ते में पहले से ही है ,.

    इसके अलावा, अपनी स्क्रिप्ट की पहली पंक्ति को कुटिया पंक्ति जोड़ने के लिए भूल नहीं है: #!/usr/bin/env python

    1

    एक समाधान कुछ क्या यहाँ उल्लेख से अलग: एक उपनाम का प्रयोग करें।

    alias app='python /path/to/app.py' 
    

    अपने ~/.bashrc या ~/.bash_login फ़ाइल (या अधिमानतः को ~/.bash_aliases यदि आप Ubuntu पर कर रहे हैं) के लिए ऊपर पंक्ति जोड़ें। फिर आप app के साथ कमांड लाइन टूल के रूप में अपनी स्क्रिप्ट का उपयोग कर सकते हैं।

    शेबैंग जोड़ने की आवश्यकता नहीं है (जिससे आपकी मौजूदा पायथन स्क्रिप्ट को संशोधित किया जा सकता है), स्क्रिप्ट निष्पादन योग्य बनाने की आवश्यकता नहीं है और PATH को बदलने की आवश्यकता नहीं है।

    संबंधित मुद्दे