python मैं setuptools को एक पैकेज स्थापित कैसे कर सकता हूं जो पीपीपीआई पर नहीं है?




distutils pypi (3)

वेनिला setuptools सीधे एक गिट भंडार से डाउनलोड करने का समर्थन नहीं करता है, लेकिन आप उस पृष्ठ से डाउनलोड स्रोत लिंक में से एक का उपयोग कर सकते हैं, जैसे:

easy_install http://github.com/mtai/python-gearman/tarball/master

मैंने बस setuptools और virtualenv के साथ काम करना शुरू कर दिया है। मेरे पैकेज को नवीनतम पायथन-गियरमैन की आवश्यकता है जो केवल गिटहब से उपलब्ध है। पीईपीआई पर पाइथन-गियरमैन संस्करण एक पुराना है। गीथब स्रोत सेटअप टूल्स-संगत है, यानी setup.py, आदि है। क्या सेटअप टूल्स को पीईपीआई पर ढूंढने और पुराने इंस्टॉल करने के बजाय नया संस्करण डाउनलोड करने और स्थापित करने का कोई तरीका है?

एफवाईआई, नया पायथन-गियरमैन http://github.com/mtai/python-gearman


कुंजी को आसान_इंस्टॉल करना है जहां पैकेज डाउनलोड किया जा सकता है। इस विशेष मामले में, यह यूआरएल http://github.com/mtai/python-gearman/tarball/master पर पाया जा सकता है। हालांकि, वह लिंक स्वयं काम नहीं करेगा, क्योंकि easy_install केवल यूआरएल को देखकर नहीं बता सकता है कि यह क्या होगा।

इसे http://github.com/mtai/python-gearman/tarball/master#egg=gearman-2.0.0beta बदलकर, easy_install पैकेज नाम और उसके संस्करण की पहचान करने में सक्षम हो जाएगा।

अंतिम चरण यूआरएल को अपने पैकेज की निर्भरता_लिंक्स में जोड़ना है, उदाहरण के लिए:

setup(
   ...
   dependency_links = ['http://github.com/mtai/python-gearman/tarball/master#egg=gearman-2.0.0beta']
)

अब, जब आपका पैकेज स्थापित किया जा रहा है, तो easy_install यह पता लगाएगा कि उस URL से डाउनलोड करने के लिए "गियरमैन 2.0.0 बीटा" उपलब्ध है, और यदि आप "gearman> = 2.0.0beta" निर्दिष्ट करते हैं, तो उसे खुशी से पीपीपीआई पर ले जाएं। आपकी निर्भरताओं में ..

(आम तौर पर, इस तरह की चीज जिस तरह से की जाती है वह है किसी के पीईपीआई पेज पर डाउनलोड करने योग्य स्रोत पर एक लिंक शामिल करना; इस मामले में, अगर गियरमैन पैकेज के लेखक ने उपरोक्त लिंक को शामिल किया है, तो आप पहले से ही सेट हो जाएंगे आम तौर पर, लोग 'myproject-dev' के साथ विकास संस्करण को चिह्नित करते हैं और फिर लोग 'myproject> = somever, == dev' की आवश्यकता का उपयोग करते हैं, ताकि यदि किसी भी या उच्चतर का पैकेज न हो, तो easy_install का प्रयास करने की कोशिश की जाएगी चेक आउट या रिलीज डाउनलोड करें।)

आपको --process-dependency-links का उपयोग करते समय --process-dependency-links निर्दिष्ट करने की आवश्यकता होगी। ध्यान दें कि निर्भरता लिंक प्रसंस्करण को हटा दिया गया है और भविष्य में रिलीज में हटा दिया जाएगा।


आप pip install protocol+location[@tag][#egg=Dependency] प्रारूप का उपयोग सीधे पीपी का उपयोग कर स्रोत से स्थापित करने के लिए कर सकते हैं।

Git

pip install git+https://github.com/username/repo.git
pip install git+https://github.com/username/[email protected]
pip install git+https://github.com/username/[email protected]#egg=ProjectName

अस्थिर

pip install hg+https://hg.myproject.org/MyProject/

SVN

pip install svn+svn://svn.myproject.org/svn/MyProject

BzR

pip install bzr+http://bzr.myproject.org/MyProject/trunk

निम्नलिखित प्रोटोकॉल समर्थित हैं: [+git, +svn, +hg, +bzr]

संस्करण

@tag आपको चेक आउट करने के लिए एक विशिष्ट संस्करण / टैग निर्दिष्ट करने देता है।

#egg=name आपको यह निर्दिष्ट करने देता है कि परियोजना दूसरों के लिए निर्भरता के रूप में क्या है।

आदेश हमेशा @tag#egg=name होना चाहिए।

निजी रिपोजिटरीज

प्रोटोकॉल को एसएसएच ( ssh:// ) में बदलकर और उचित उपयोगकर्ता ( [email protected] ) जोड़कर आप निजी भंडारों से भी इंस्टॉल कर सकते हैं:

git+ssh://[email protected]/username/my_private_repo

आप उपयोगकर्ता नाम / पासवर्ड के साथ निजी भंडारों से भी इंस्टॉल कर सकते हैं।

git+https://<username>:<password>@github.com/<user>/<repo>.git

गिथब व्यक्तिगत ओथ टॉकेन्स बनाने की क्षमता प्रदान करता है जिसे साइकिल चलाया जा सकता है

git+https://<oauth token>:[email protected]/<user>/<repo>.git

requirements.txt

requirements.txt का उपयोग परियोजना निर्भरताओं को निर्दिष्ट करने के लिए किया जाता है:

requirements.txt

package1
package2==1.0.2
package3>=0.0.4
git+https://github.com/username/repo.git

ये पैकेज के साथ स्वचालित रूप से स्थापित नहीं हैं और कमांड pip -r requirements.txt साथ स्थापित होना चाहिए।

आवश्यकता फाइलों सहित

आवश्यकताएँ फ़ाइलों में अन्य आवश्यकताएं फ़ाइलें शामिल हो सकती हैं:

आवश्यकताओं-docs.txt

sphinx
-r requirements-dev.txt

आवश्यकताओं-dev.txt

some-dev-tool
-r requirements.txt

requirements.txt

package1
package2==1.0.2
package3>=0.0.4
git+https://github.com/username/repo.git

setup.py

आवश्यकताएँ फ़ाइलें निम्न. setup.py साथ setup.py में निर्दिष्ट निर्भरताओं को स्थापित कर सकती हैं:

-e .

setup.py उपरोक्त के समान वाक्यविन्यास का उपयोग करके भंडारों से भी इंस्टॉल हो सकता है, लेकिन इस उत्तर में उल्लिखित dependency_links मान का उपयोग कर।

संदर्भ:

https://pip.pypa.io/en/latest/user_guide.html#installing-packages https://pip.pypa.io/en/latest/reference/pip_install.html





pypi