2009-05-17 10 views
30

पर स्क्रिप्ट स्थापित करें मैं अपनी खुद की स्क्रिप्ट के लिए setup.py फ़ाइल कैसे बना सकता हूं? मुझे अपनी स्क्रिप्ट वैश्विक बनाना है। (इसे/usr/bin में जोड़ें) ताकि मैं इसे कंसोल से चला सकूं बस टाइप करें: scriptName तर्क। ओएस: लिनक्स। संपादित करें: अब मेरी स्क्रिप्ट स्थापित करने योग्य है, लेकिन मैं इसे वैश्विक कैसे बना सकता हूं? ताकि मैं इसे कंसोल से सिर्फ टाइपिंग नाम से चला सकूं।पायथन - सिस्टम

उत्तर

35

संपादित करें: यह उत्तर केवल /usr/bin में निष्पादन योग्य स्क्रिप्ट स्थापित करने के साथ ही संबंधित है। मुझे लगता है कि आपके पास setup.py फाइलें कैसे काम करती हैं, इस बारे में बुनियादी जानकारी है।

अपने स्क्रिप्ट बनाएं और इस तरह अपनी परियोजना में रखें:

yourprojectdir/ 
    setup.py 
    scripts/ 
     myscript.sh 

अपने setup.py फ़ाइल में ऐसा करते हैं:

from setuptools import setup 
# you may need setuptools instead of distutils 

setup(
    # basic stuff here 
    scripts = [ 
     'scripts/myscript.sh' 
    ] 
) 

फिर

python setup.py install 

मूल रूप से बस इतना ही लिखें। एक मौका है कि आपकी स्क्रिप्ट /usr/bin में बिल्कुल नहीं, बल्कि किसी अन्य निर्देशिका में नहीं होगी। यदि यह मामला है,

python setup.py install --help 

टाइप करें और --install-scripts पैरामीटर और दोस्तों के लिए खोज करते हैं।

+0

ठीक है, मुझे लगता है कि आप ने लिखा था। लेकिन चलने के बाद: setup.py install मुझे मिला:
त्रुटि: फ़ाइल '/home/ockonal/workspace/scripts/getkey.py' मौजूद नहीं है – Ockonal

+0

ठीक है, मैं पहले से ही अपनी स्क्रिप्ट इंस्टॉल करने योग्य हूं, लेकिन मैं कैसे कर सकता हूं यह वैश्विक है? मैं कंसोल से सिर्फ टाइपिंग नाम नहीं चला सकता। – Ockonal

+0

स्क्रिप्ट को वास्तव में कहां स्थापित किया गया था? अगर यह/usr/bin में है, तो setup.py ठीक काम करता है। अपनी स्क्रिप्ट की अनुमतियों की जांच करें - इसमें सभी के लिए + x अनुमतियां होनी चाहिए। आपकी प्रोजेक्ट में लिपि में ये प्रमोशन होना चाहिए, ताकि जब इसे कॉपी किया जा सके/usr/bin सबकुछ ठीक होगा। – Jasiu

1

मुझे पता है कि यह प्रश्न काफी पुराना है, लेकिन बस, अगर मैं अपने लिए समस्या हल करता हूं, तो वह पीपीपीआई के लिए एक पैकेज स्थापित करना चाहता था, कि, इसे pip के साथ स्थापित करते समय, इसे इंस्टॉल किया जाएगा एक पाइथन के लिए नहीं, एक सिस्टम पैकेज।

setup(
    # rest of setup 
    console_scripts={ 
     'console_scripts': [ 
      '<app> = <package>.<app>:main' 
     ] 
    }, 
) 

Details

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