रूट एक्सेस के बिना अजगर मॉड्यूल कैसे स्थापित करें?


220

मैं कुछ विश्वविद्यालय कक्षाएं ले रहा हूं और मुझे एक 'निर्देशात्मक खाता' दिया गया है, जो एक स्कूल खाता है जिसे मैं काम करने के लिए तैयार कर सकता हूं। मैं अपने कम्प्यूटेशनल रूप से गहन Numpy, matplotlib, scipy कोड को उस मशीन पर चलाना चाहता हूं, लेकिन मैं इन मॉड्यूल को स्थापित नहीं कर सकता क्योंकि मैं सिस्टम प्रशासक नहीं हूं।

मैं स्थापना कैसे कर सकता हूं?


14
आप स्थानीय स्तर पर इसे स्थापित करने के लिए जो पैकेज स्थापित कर रहे हैं, उसके लिए आप सेटअप करने के लिए --user या --prefix को पास कर सकते हैं। देखें अजगर मॉड्यूल के लिए alertnative स्थापना
Arunkumar

जवाबों:


306

अधिकांश स्थितियों में सबसे अच्छा समाधान तथाकथित "उपयोगकर्ता साइट" स्थान पर भरोसा करना है ( विवरण के लिए पीईपी देखें):

pip install --user package_name

नीचे मेरे मूल उत्तर से अधिक "मैनुअल" तरीका है, यदि उपरोक्त समाधान आपके लिए काम करता है, तो आपको इसे पढ़ने की आवश्यकता नहीं है।


Easy_install से आप कर सकते हैं:

easy_install --prefix=$HOME/local package_name

जो स्थापित करेगा

$HOME/local/lib/pythonX.Y/site-packages

('स्थानीय' फ़ोल्डर एक विशिष्ट नाम है जिसका कई लोग उपयोग करते हैं, लेकिन निश्चित रूप से आप किसी भी फ़ोल्डर को निर्दिष्ट कर सकते हैं जिसमें आपको लिखने की अनुमति है)।

आपको मैन्युअल रूप से बनाने की आवश्यकता होगी

$HOME/local/lib/pythonX.Y/site-packages

और इसे अपने PYTHONPATHपर्यावरण चर में जोड़ें (अन्यथा easy_install शिकायत करेगा - XY के लिए सही मूल्य खोजने के लिए एक बार ऊपर कमांड चलाएं)।

यदि आप उपयोग नहीं कर रहे हैं easy_install, तो एक उपसर्ग विकल्प की तलाश करें, अधिकांश इंस्टॉल स्क्रिप्ट आपको एक निर्दिष्ट करने दें।

पाइप के साथ आप उपयोग कर सकते हैं:

pip install --install-option="--prefix=$HOME/local" package_name

1
क्या होगा अगर अजगर के पास उपलब्ध pipऔर easy_installउपलब्ध नहीं है ?
गिरधारी

इंस्टॉलेशन ठीक चला (पाइप विधि), लेकिन package_name आयात करना काम नहीं कर रहा है। क्या मुझे कुछ कॉन्फ़िगरेशन बदलने / जोड़ने की आवश्यकता है? यह भी कहाँ स्थापना (फ़ोल्डर वार) की नकल कर रहे थे?
idoda

2
//, @AnotherDayAnotherRob, यह एक अच्छा प्रश्न लगता है ।
नाथन बसानी

2
यह उत्तर को अद्यतन करने और --userशीर्ष पर निर्देश देने के लिए समझ में आ सकता है । :)
वासिलीनोविकोव

1
@Girardi यदि आपने src से एक स्थानीय dir / my_python / के लिए अजगर स्थापित किया है, तो सबसे पहले इस स्थान पर पाइप को स्थापित करना उपयोगी होगा: wget-no- सर्टिफिकेट बूटस्ट्रैप .pypa.io/get-pip.py -ओ - | / my_python / bin / python - फिर आप पाइप + उपसर्ग के साथ अन्य मॉड्यूल स्थापित कर सकते हैं
teng_wenxuan

51

एक्सेस करने या इंस्टॉल करने की कोई अनुमति नहीं easy_install?

फिर, आप एक python virtualenv( https://pypi.python.org/pypi/virtualenv ) बना सकते हैं और इस आभासी वातावरण से पैकेज को स्थापित कर सकते हैं ।

शेल में 4 कमांडों का निष्पादन पर्याप्त होगा (XXX के लिए 16.1.0 की तरह वर्तमान रिलीज़ डालें):

$ curl --location --output virtualenv-X.X.X.tar.gz https://github.com/pypa/virtualenv/tarball/X.X.X
$ tar xvfz virtualenv-X.X.X.tar.gz
$ python pypa-virtualenv-YYYYYY/src/virtualenv.py my_new_env
$ . my_new_env/bin/activate
(my_new_env)$ pip install package_name

स्रोत और अधिक जानकारी: https://virtualenv.pypa.io/en/latest/installation/


1
यह उत्तर मेरे लिए एक सिस्टम पर उपयोगी था जिसमें कोई pipसंस्थापित नहीं था।
डैन स्टॉवेल

मैंने अपने स्थानीय अजगर स्थापना के लिए एक संस्करण की कोशिश की। कर्ल - शेष --show- त्रुटि - 5 बूटस्ट्रैप । pypa.io/get-pip.py | ~ / पायथन -२. /. / / अजगर
नीरव

3
ऐसा लगता है कि स्रोत स्थानांतरित हो गया है और ऊपर बॉक्स से बाहर काम नहीं करता है। https://virtualenv.pypa.io/en/latest/installation/हालांकि काम पर इसी तरह के निर्देश :)
Andras Deak

13

आप रूट एक्सेस के बिना भी अपने घर निर्देशिका में अजगर पैकेज स्थापित करने के लिए easy_install चला सकते हैं। साइट का उपयोग करने का एक मानक तरीका है। USER_BASE, जो $ HOME / .local या $ HOME / लाइब्रेरी / Python / 2.7 / bin जैसी किसी चीज़ में चूक करता है और PYTHONPATH पर डिफ़ॉल्ट रूप से शामिल होता है

ऐसा करने के लिए, अपने होम निर्देशिका में .pydistutils.cfg बनाएं:

cat > $HOME/.pydistutils.cfg <<EOF
[install]
user=1
EOF

अब आप बिना रूट विशेषाधिकार के easy_install चला सकते हैं:

easy_install boto

वैकल्पिक रूप से, यह आपको रूट एक्सेस के बिना पाइप चलाने की सुविधा भी देता है:

pip install boto

यह मेरे लिए काम करता है।

वेस्ले तनाका के ब्लॉग से स्रोत: http://wtanaka.com/node/8095


1
इसने मुझे लिनक्स सर्वर पर रूट एक्सेस के बिना स्थापित करने के लिए काम किया। धन्यवाद, लेकिन मुझे नहीं पता कि यह क्यों काम किया। क्या कोई शरीर संकेत दे सकता है?
चतुर्थी

9

यदि आपको डिस्टुटिल्स setup.pyस्क्रिप्ट का उपयोग करना है , तो इंस्टॉलेशन डेस्टिनेशन को मजबूर करने के लिए कुछ कमांडलाइन विकल्प हैं। Http://docs.python.org/install/index.html#alternate-installation देखें । यदि यह समस्या दोहराई जाती है, तो आप एक डिस्टल्यूट कॉन्फ़िगरेशन फ़ाइल सेटअप कर सकते हैं, http://docs.python.org/install/index.html#inst-config-files देखें ।

PYTHONPATH वैरिएबल सेट करना tihos पोस्ट में वर्णित है।


1
बहुत बहुत धन्यवाद। मैंने सफलतापूर्वक lxmlपुस्तकालय का उपयोग कर स्थापित किया हैpython <lxml_distrib_dir>/setup.py install --home=<dir>
सर्ज एस।

6

महत्वपूर्ण सवाल। मेरे द्वारा उपयोग किया जाने वाला सर्वर (Ubuntu 12.04) था, easy_install3लेकिन नहीं pip3। इस प्रकार मैंने अपने होम फोल्डर में पिप और फिर अन्य पैकेज स्थापित किए

  1. उबंटू पैकेज को स्थापित करने के लिए व्यवस्थापक से पूछा python3-setuptools

  2. स्थापित पाइप

ऐशे ही:

 easy_install3 --prefix=$HOME/.local pip
 mkdir -p $HOME/.local/lib/python3.2/site-packages
 easy_install3 --prefix=$HOME/.local pip
  1. पथ में Pip (और अन्य पायथन एप्लिकेशन जोड़ें)

ऐशे ही:

PATH="$HOME/.local/bin:$PATH"
echo PATH="$HOME/.local/bin:$PATH" > $HOME/.profile
  1. अजगर पैकेज स्थापित करें

इस तरह

pip3 install --user httpie

# test httpie package
http httpbin.org

4

मैं JuJu का उपयोग करता हूं जो मूल रूप से आपके $ HOME / .jpg निर्देशिका के अंदर वास्तव में एक छोटे से लिनक्स वितरण (सिर्फ पैकेज प्रबंधक वाले) का उपयोग करने की अनुमति देता है।

यह आपके कस्टम सिस्टम को प्रॉपोट के माध्यम से होम डायरेक्टरी के अंदर पहुंचाने की अनुमति देता है और इसलिए, आप रूट विशेषाधिकारों के बिना किसी भी पैकेज को स्थापित कर सकते हैं। यह सभी प्रमुख लिनक्स वितरणों के लिए ठीक से चलेगा, एकमात्र सीमा यह है कि JuJu न्यूनतम reccomended संस्करण 2.6.32 के साथ लिनक्स कर्नेल पर चल सकता है।

उदाहरण के लिए, पाइप स्थापित करने के लिए JuJu स्थापित करने के बाद बस निम्नलिखित टाइप करें:

$>juju -f
(juju)$> pacman -S python-pip
(juju)> pip


1

Virtualenv स्थानीय रूप से स्थापित करें ( निर्देशों का स्रोत ):

महत्वपूर्ण: XXX के लिए वर्तमान रिलीज़ (जैसे 16.1.0 ) डालें । निकाली गई फ़ाइल का नाम जांचें और इसे YYYYY के लिए डालें ।

$ curl -L -o virtualenv.tar.gz https://github.com/pypa/virtualenv/tarball/X.X.X
$ tar xfz virtualenv.tar.gz
$ python pypa-virtualenv-YYYYY/src/virtualenv.py env

इससे पहले कि आप अपने वर्चुअल पायथन वातावरण में किसी भी पैकेज को उपयोग या स्थापित कर सकें :sourceenv

$ source env/bin/activate

नए अजगर पैकेज स्थापित करने के लिए (जैसे कि खस्ता), उपयोग करें:

(env)$ pip install <package>

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