क्या मैं 'python setup.py स्थापित' निर्भरता संकल्प के लिए `easy_install 'के बजाय` pip` का उपयोग कर सकता हूँ?


137

python setup.py installस्वचालित रूप से requires=[]उपयोग में सूचीबद्ध संकुल को स्थापित करेगा easy_install। मैं pipइसके बजाय इसका उपयोग कैसे करूँ ?

जवाबों:


133

हाँ तुम कर सकते हो। आप वेब या अपने कंप्यूटर पर एक टारबॉल या एक फ़ोल्डर से एक पैकेज स्थापित कर सकते हैं। उदाहरण के लिए:

वेब पर टारबॉल से इंस्टॉल करें

pip install https://pypi.python.org/packages/source/r/requests/requests-2.3.0.tar.gz

स्थानीय टारबॉल से स्थापित करें

wget https://pypi.python.org/packages/source/r/requests/requests-2.3.0.tar.gz
pip install requests-2.3.0.tar.gz

स्थानीय फ़ोल्डर से स्थापित करें

tar -zxvf requests-2.3.0.tar.gz
cd requests-2.3.0
pip install .

आप requests-2.3.0फ़ोल्डर को हटा सकते हैं ।

स्थानीय फ़ोल्डर (संपादन मोड) से इंस्टॉल करें

pip install -e .

यह पैकेज को संपादन योग्य मोड में स्थापित करता है । आपके द्वारा कोड में किए गए कोई भी परिवर्तन तुरंत पूरे सिस्टम में लागू होंगे। यह उपयोगी है यदि आप पैकेज डेवलपर हैं और परिवर्तनों का परीक्षण करना चाहते हैं। इसका मतलब यह भी है कि आप फ़ोल्डर को स्थापित किए बिना तोड़ नहीं सकते।


10
यदि आप पैकेजों को स्थापित करने के लिए "पायथॉन सेटअपहोम इंस्टॉल" का उपयोग करने के लिए उपयोग किए जाते हैं, तो यह पूछना स्वाभाविक है कि पाइप के साथ निर्भरता को हल करने के लिए "पायथन सेटअपहोम स्थापित कैसे करें", लेकिन यह गलत सवाल है। समाधान पाइप के साथ पैकेज को स्थापित करने और "setup.py स्थापित" का उपयोग बंद करने के लिए है।
जोफॉर्कर

8
समस्या @joeforker है अगर आप कुछ ऐसा करते हैं तो आपको easy_install का उपयोग करने के लिए मजबूर किया जा सकता हैpython setup.py test
TomDotTom

1
@TomDotTom को रनिंग के समय पाइप का उपयोग करने के लिए कैसे करें, इस पर कोई विचार setup.py testकरें?
Jan Sila

@joeforker, setup.pyपर्दे के पीछे पाइप का उपयोग करता है । यदि मैं चाहता हूं कि लोग पाइप के साथ मेरे पैकेज को स्थापित करने में सक्षम हों, तो मुझे एक setup.pyफ़ाइल बनाने की आवश्यकता है ।
काउलिनेटर

यदि आप इसका प्रमाण चाहते हैं, तो प्रयास करें pip install -e git+https://github.com/octocat/Hello-World.git#egg=Hello-World। त्रुटि हैNo such file or directory: 'c:\python\src\Hello-World\setup.py
काउललाइनर

110

आप pip installशायद python setup.py sdistपहले से एक फाइल कर सकते हैं । आप भी कर सकते हैं pip install -e .जो की तरह है python setup.py develop


14
किसी को भी यह कोशिश करने के लिए बस एक सिर: ध्यान दें कि pip install -eएक निर्देशिका को तर्क के रूप में लेता है, न कि केवल setup.pyफ़ाइल। सबसे पहले मैंने उस अवधि पर ध्यान नहीं दिया, pip install -e .जिसके कारण मुझे कुछ भ्रम हो गया :)
मार्कस अमलाथिया मैग्नसन

3
धन्यवाद, pip install -e .मैं स्थापित कर सकता हूं , लेकिन पाइप के साथ, मैं संपादन योग्य मोड से कैसे अनइंस्टॉल कर सकता हूं?
जुआनपब्लो

2
संपादन योग्य इंस्टॉल को नियमित 'पाइप अनइंस्टॉल <पैकेज के नाम>' के साथ अनइंस्टॉल किया जाता है
जोफॉकर

4

यदि आप वास्तव में python setup.py installइस तरह का उपयोग करने की कोशिश कर रहे हैं, तो आप कुछ इस तरह सेट कर सकते हैं:

from setuptools import setup, find_packages
from setuptools.command.install import install as InstallCommand


class Install(InstallCommand):
    """ Customized setuptools install command which uses pip. """

    def run(self, *args, **kwargs):
        import pip
        pip.main(['install', '.'])
        InstallCommand.run(self, *args, **kwargs)


setup(
    name='your_project',
    version='0.0.1a',
    cmdclass={
        'install': Install,
    },
    packages=find_packages(),
    install_requires=['simplejson']
)

1
धन्यवाद, लेकिन मैं इस पद्धति का उपयोग करके पुनरावर्ती कॉलबैक का सामना कर रहा हूं। जब मैं 'python setup.py install' का उपयोग कर रहा हूं, तो यह Install.run को कॉल करेंगी। फिर से दौड़ें ...
लुमेन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.