आर्क पर अजगर पैकेज स्थापित करने का अनुशंसित तरीका


37

आर्क पर अजगर पैकेज स्थापित करने का अनुशंसित तरीका क्या है? AUR पर उनके लिए खोज करना और उन्हें वहां से स्थापित करना (या PKGBUILDपैकेज बनाने के लिए फ़ाइल बनाना) या उपयोग करना pip?

मैंने पैडमैन और एयूआर से सामान स्थापित करके शुरू किया और यह नहीं जानता कि क्या pipपैकेज के साथ मिश्रण करना बुद्धिमान होगा ।

जवाबों:


34

यदि आपको सभी उपयोगकर्ताओं के लिए अजगर पैकेज की आवश्यकता नहीं है, तो आप उन्हें अपने घर में इस तरह स्थापित कर सकते हैं:

pip install --user packagename

अपने घर में स्थापित करने से पैकेज प्रबंधक के साथ संघर्ष नहीं होगा।

डिफ़ॉल्ट रूप pip install --userसे आपकी "उपयोगकर्ता साइट" निर्देशिका में स्थापित होगी। आमतौर पर ऐसा कुछ है /home/lesmana/.local/lib/python3.6/site-packages:।

निम्नलिखित कमांड प्रिंट होगी, दूसरों के बीच, आपकी "उपयोगकर्ता साइट" स्थान:

python -m site

स्थापित स्थान को अनुकूलित करने के लिए:

PYTHONUSERBASE=$HOME/some/dir pip install --user packagename

यह सब कुछ स्थापित करेगा $HOME/some/dir

चलाने के लिए:

PYTHONUSERBASE=$HOME/some/dir $HOME/some/dir/bin/progname

देखें पिप के मैनुअल में अधिक जानकारी के लिए।


यदि आप सभी उपयोगकर्ताओं के लिए अजगर पैकेज चाहते हैं तो इसे स्थापित करने के लिए सबसे अच्छी जगह है /opt। इस तरह के उदाहरण के लिए:

PYTHONUSERBASE=/opt/packagedir pip install packagename

(नोट गायब है --user)

और ऊपर चलाने के लिए:

PYTHONUSERBASE=/opt/packagedir /opt/packagedir/bin/progname

पृष्ठभूमि की व्याख्या: /optआमतौर पर गनु / लिनक्स वितरण द्वारा निर्देशिका के रूप में स्वीकार किया जाता है जहां स्थानीय उपयोगकर्ता या सिस्टम व्यवस्थापक अपना सामान स्थापित कर सकते हैं। दूसरे शब्दों में: वितरण के पैकेज प्रबंधक आमतौर पर स्पर्श नहीं करते हैं /opt। यह फाइलसिस्टम पदानुक्रम मानक में कमोबेश मानकीकृत है

उपयोगकर्ताओं के लिए आराम के लिए आप अभी भी एक आवरण स्क्रिप्ट लिखने और इसे रखना चाहते हैं जाएगा /binया /usr/bin। यह अभी भी वितरण पैकेज प्रबंधक से टकराने का जोखिम रखता है, लेकिन कम से कम यह केवल एक आवरण स्क्रिप्ट फ़ाइल है। तो हो सकता है कि नुकसान कम से कम हो। आप की तरह आवरण स्क्रिप्ट कुछ नाम कर सकते हैं local-fooया custom-fooआगे वितरण पैकेज प्रबंधक के साथ टकराव के जोखिम को कम करने के लिए।

वैकल्पिक रूप से आप अपनी आवरण स्क्रिप्ट को वहां PATHशामिल करने /opt/binऔर बदलने के लिए संशोधित कर सकते हैं । लेकिन इसके लिए आपको फिर से एक (या कुछ) सिस्टम फ़ाइलों को संशोधित करने की आवश्यकता होती है जहां PATHपरिभाषित किया गया है जो फिर से वितरण पैकेज प्रबंधक द्वारा अधिलेखित हो सकता है।

संक्षेप में: यदि आप सभी उपयोगकर्ताओं के लिए इंस्टॉल करना चाहते हैं तो ऐसा करें /opt। जहाँ आप आराम के लिए रैपर स्क्रिप्ट लगाते हैं, वह एक निर्णय कॉल है।

/optफाइलसिस्टम पदानुक्रम मानक के बारे में और जानकारी :


IMHO, यह, एक सूचक के साथ virtualenvs स्थापित करने के लिए, स्वीकृत उत्तर होना चाहिए।
ttsiodras

1
ओह। करने के लिए नया pythonचाहते हैं और मैं पहले इस नाम से जाना जाता था sudioपिप-पिंग बातें। इसके लिए धन्यवाद।
हेंडी

क्या होगा यदि आप कर सभी उपयोगकर्ताओं के लिए अजगर पैकेज की ज़रूरत है?
मेहरदाद

@ मेहरदाद अद्यतन उत्तर
lesmana

@lesmana: धन्यवाद! लेकिन क्या आपको यकीन है कि इसे करने का अनुशंसित तरीका है? यह पहली बार है जब मैंने किसी को पायथन के लिए / ऑप्ट का उपयोग करने का सुझाव दिया है ...
मेहरदाद

9

आमतौर पर, वितरण में, यह अनुशंसा की जाती है कि आप वितरण के पैकेज प्रबंधक का उपयोग करें। आप निश्चित रूप से पाइप का उपयोग करके चीजों को स्थापित कर सकते हैं (या, पर्ल वर्ल्ड में, cpan), या चीजों को स्वयं संकलित और स्थापित कर सकते हैं। हालाँकि, जब आप ऐसा करते हैं, तो वितरण पैकेज प्रबंधक उनके बारे में नहीं जानता है और उनके लिए निर्भरता या अपडेट का प्रबंधन नहीं कर सकता है।

अपने स्वयं के पैकेज को संकलित करने और स्थापित करने के लिए पाइप का उपयोग करना बहुत अधिक समान है। यदि आपको इसकी आवश्यकता है, तो करें, लेकिन वितरण के पैकेज प्रबंधक को प्राथमिकता दें।


2
आपको पूरी तरह से pip(कम से कम विश्व स्तर पर sudoया रूट के रूप में) का उपयोग करने से बचना चाहिए - मुझे कुछ निर्भरताएं स्थापित करने की कोशिश करने पर site-package/...पहले से ही काफी कुछ मौजूद हैंpacman
टॉबीस किंजलर

मुझे भी इस तरह की त्रुटियाँ मिलीं। मैंने सभी pip3 पैकेजों को अपग्रेड किया था और तब पैक्मैन ने संघर्षों के कारण सिस्टम अपग्रेड करने से इनकार कर दिया था। मुझे उस पैकेज को pip3 और pacman दोनों के माध्यम से अनइंस्टॉल करना पड़ा, फिर सिस्टम को अपग्रेड करें, और अंत में पैकेज को वापस स्थापित करें (pacman का उपयोग करके, बिल्कुल)।
अल.जी.

8

आर्कलिनक्स का सही तरीका

ArchLinux में PYTHON संकुल स्थापित करने का सही तरीका PACMAN का उपयोग कर रहा है! Python3 में पैकेज स्थापित करने के लिए आपको उपयोग करना होगा

sudo pacman -S python-'package'

यदि आप Python2 से पैकेज स्थापित करना चाहते हैं, तो आपको उपयोग करना होगा

sudo pacman -S python2-'package'

अधिकांश अजगर पैकेज ArchLinux रिपॉजिटरी में हैं और जो पैकेज AUR (ArchLinux यूजर रिपॉजिटरी) में नहीं हैं - इन पैकेजों के लिए आपको PKGBUILD फाइल डाउनलोड करनी होगी और कंपाइल करना होगा। उसके बाद, आपको स्थापना को समाप्त करने के लिए PACMAN का उपयोग करना होगा

makepkg -s
sudo pacman -U 'compiled-package'

ArchLinux के लिए दूसरा सही तरीका है

जब पैकेज AUR में नहीं है या PKGBUILD काम नहीं कर रहा है, तो आप इसे Pyuton3 में स्थापित करने के लिए PIP का उपयोग कर सकते हैं

sudo pip install 'python-package'

या पायथन 2

sudo pip2 install 'python-package'

आप एक मौका virtualenvभी दे सकते हैंconda

Arch पर आप VirtualEn वातावरण का भी उपयोग कर सकते हैं। यह आपके कोड में पोर्टेबिलिटी ला सकता है और पुराने पैकेज को भी बनाए रख सकता है। इसके साथ स्थापित करें

sudo pacman -S python-virtualenv

और यह कोशिश करो

virtualenv -p /usr/bin/python3 yourenv
source yourenv/bin/activate
pip install package-name

जब आप इस वातावरण को बनाते हैं yourenv, तो आप pipकेवल इस वातावरण में संकुल को स्थापित करने के लिए सेटअप करेंगे , पूरे सिस्टम में नहीं।

ये अन्य लिंक आपके साथ उपयोगी हो सकते हैं, जिनके साथ आप लिनक्स पर संकुल के प्रबंधन के बारे में अधिक जानना चाहते हैं condaयाvirtualenv :

एक ज्यूपिटर नोटबुक से पायथन पैकेज स्थापित करना

आर्चलिनक्स पर कोड पायथन

यदि आप इन नियमों का पालन करते हैं, तो आपका ArchLinux नहीं टूटेगा और PACMAN और PIP के बीच निर्भरता की समस्या नहीं होगी।

आशा है कि यह उपयोगी है!


5

कुछ विशेष पैकेजों के लिए (जिन्हें मैं शायद हैक नहीं करना चाहता), मैं इसका उपयोग करके अपना खुद का पैकेज बनाता हूं:

https://github.com/bluepeppers/pip2arch

फिर उत्पादित PKGBUILD का निर्माण और स्थापित करें।

मैं virtualenvs को उन पैकेजों के लिए छोड़ देता हूं जिन्हें मैं संशोधित या हैक करना चाहता हूं।



1

यहां अन्य उत्तरों के अलावा, python-virtualenvपैकेज देखें। यह बहुत उपयोगी हो सकता है यदि आप कई परियोजनाओं पर विकास कर रहे हैं जिसमें विभिन्न निर्भरताएं हैं, जो कि बेमेल संस्करण संख्याओं के साथ हैं।

https://wiki.archlinux.org/index.php/Python_VirtualEnv

यह भी सावधान रहें कि पाइप और वर्चुनेल के दो संस्करण हैं। पायथन 2 के लिए एक और पायथन 3 के लिए एक। यदि सिंटैक्स त्रुटि के साथ इंस्टॉलेशन विफल हो जाता है, तो आप गलत संस्करण के साथ प्रयास कर रहे होंगे।

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