क्या Python का एक और संस्करण Virtualenv पर स्थापित करना संभव है?


146

मेरे पास एक वेब-होस्टिंग में एक साझा खाता है जिसमें पायथन 2.4 स्थापित है, लेकिन मेरा कोड 2.4 के साथ संगत नहीं है। क्या Virtualenv पर सीधे Python 2.6 को स्थापित करना संभव है?

नोट: मुझे साझा सर्वर में इसे स्थापित करने की अनुमति नहीं है।

जवाबों:


253

यहां virtualenv के विकल्प दिए गए हैं

$ virtualenv
You must provide a DEST_DIR
Usage: virtualenv [OPTIONS] DEST_DIR

Options:
  --version             show program's version number and exit.
  -h, --help            show this help message and exit.
  -v, --verbose         Increase verbosity.
  -q, --quiet           Decrease verbosity.
  -p PYTHON_EXE, --python=PYTHON_EXE
                        The Python interpreter to use, e.g.,
                        --python=python2.5 will use the python2.5 interpreter
                        to create the new environment.  The default is the
                        interpreter that virtualenv was installed with
                        (/usr/bin/python)
  --clear               Clear out the non-root install and start from scratch
  --no-site-packages    Don't give access to the global site-packages dir to
                        the virtual environment
  --unzip-setuptools    Unzip Setuptools or Distribute when installing it
  --relocatable         Make an EXISTING virtualenv environment relocatable.
                        This fixes up scripts and makes all .pth files
                        relative
  --distribute          Use Distribute instead of Setuptools. Set environ
                        variable VIRTUALENV_USE_DISTRIBUTE to make it the
                        default
  --prompt==PROMPT      Provides an alternative prompt prefix for this
                        environment

1) आप जो करना चाहते हैं वह एक निर्देशिका में अजगर स्थापित करें जिसे आप भी लिखने में सक्षम हैं।

आप निर्देशों का पालन कर सकते हैं here

पायथन 2.7.1 के लिए
Python source

mkdir ~/src
mkdir ~/.localpython
cd ~/src
wget http://www.python.org/ftp/python/2.7.1/Python-2.7.1.tgz
tar -zxvf Python-2.7.1.tgz
cd Python-2.7.1

make clean
./configure --prefix=/home/${USER}/.localpython
make
make install

2) virtualenv स्थापित करें
virtualenv source

cd ~/src
wget http://pypi.python.org/packages/source/v/virtualenv/virtualenv-1.5.2.tar.gz#md5=fbcefbd8520bb64bc24a560c6019a73c
tar -zxvf virtualenv-1.5.2.tar.gz
cd virtualenv-1.5.2/
~/.localpython/bin/python setup.py install

3) अपने स्थानीय अजगर का उपयोग करके एक virtualenv बनाएँ
virtualenv docs

mkdir /home/${USER}/virtualenvs
cd /home/${USER}/virtualenvs
~/.localpython/bin/virtualenv py2.7 --python=/home/${USER}/.localpython/bin/python2.7

4) पर्यावरण को सक्रिय करें

cd ~/virtualenvs/py2.7/bin
source ./activate

5) जाँच करें

(py2.7)$ python
Python 2.7.1 (r271:86832, Mar 31 2011, 15:31:37) 
[GCC 4.4.5] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> exit()

(py2.7)$ deactivate
$ python
Python 2.6.6 (r266:84292, Sep 15 2010, 15:52:39) 
[GCC 4.4.5] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> 

14
शानदार राइटअप! हालांकि दो टिप्पणियाँ: 1. मुझे वास्तव में त्रुटि करने make cleanसे पहले नहीं करना था । 2. काम नहीं किया बजाय काम किया। मुझे लगता है यह virtualenv संस्करण के लिए नीचे है। चियर्स! ./configure --prefix=/home/<user>/.localpythonmake cleanvirtualenv name -p=/python/pathvirtualenv name -p /python/path
zzart

1
मैं जेल से बाहर जेल गया था, लेकिन चरण 1 में इसके बजाय ActiveState पायथन का उपयोग करने में सक्षम था: docs.activestate.com/activepython/2.7/…
स्कॉट स्टैफोर्ड

3
यहाँ उन मॉड्यूलों की एक सूची है जिन्हें आपको स्थापित करने की आवश्यकता है (डेबियन पर) इसे पूरी तरह से स्थापित करने के लिए जितना संभव हो उतना काम करने के लिए:curl gcc build-essential libncursesw5-dev libreadline5-dev libssl-dev libgdm-dev libbz2-dev libc6-dev libsqlite3-dev tk-dev
क्लाउडी

1
नाइटपिक: sourceबैशवाद है। POSIX समकक्ष है .
l0b0

4
मुझे लगता है कि बहुत सारे बुनियादी मॉड्यूल गायब हैं
user299709

20

पूर्व आवश्यक वस्तुएँ:

  1. sudo easy_install virtualenv
  2. sudo pip install virtualenvwrapper

Python2.6 के साथ virtualenv इंस्टॉल करना:

  1. आप मैन्युअल रूप से /usr/localया किसी अन्य स्थान पर पायथन के दूसरे संस्करण को डाउनलोड, निर्माण और स्थापित कर सकते हैं ।

  2. यदि इसके अलावा कोई अन्य स्थान है /usr/local, तो इसे अपने पथ में जोड़ें।

  3. अपडेट किए गए PATH को लेने के लिए अपने शेल को पुनः लोड करें।

  4. इस बिंदु से, आपको अपने शेल से निम्नलिखित 2 अजगर बायनेरिज़ को कॉल करने में सक्षम होना चाहिए python2.5औरpython2.6

  5. Virtualenv का एक नया उदाहरण बनाएं python2.6:

    mkvirtualenv --python=python2.6 yournewenv


4
मुझे लगता है कि mkvirtualenv कमांड केवल तभी काम करता है जब आपने virtualenvwrapper स्थापित किया हो।
DTing

4

यह प्रक्रिया कहीं भी Python2.7 को स्थापित करती है और आपके envफ़ोल्डर के भीतर (virtualenv द्वारा प्रबंधित) किसी भी पूर्ण पथ संदर्भ को समाप्त करती है । यहां तक ​​कि virtualenv बिल्कुल स्थापित नहीं है।

इस प्रकार, सैद्धांतिक रूप से, आप शीर्ष स्तर की निर्देशिका को टारबॉल में छोड़ सकते हैं, वितरित कर सकते हैं, और टेरबॉल के भीतर कॉन्फ़िगर की गई किसी भी चीज़ को मशीन पर चला सकते हैं जिसमें पायथन (या कोई निर्भरता) स्थापित नहीं है।

किसी भी सवाल के साथ मुझे संपर्क करें। यह एक निरंतर, बड़ी परियोजना का हिस्सा है, जो मैं इंजीनियरिंग कर रहा हूं। अब, ड्रॉप के लिए ...

  1. पर्यावरण फ़ोल्डर सेट करें।

    $ mkdir env
    $ mkdir pyenv
    $ mkdir dep
  2. रूट ओएस इंस्टॉलेशन के किसी भी रूप के बिना पायथन-2.7.3 और वर्चुअन प्राप्त करें ।

    $ cd dep
    $ wget http://www.python.org/ftp/python/2.7.3/Python-2.7.3.tgz
    $ wget https://raw.github.com/pypa/virtualenv/master/virtualenv.py
  3. pyenvडायर में पायथन-2.7.3 निकालें और स्थापित करें । make cleanवैकल्पिक है अगर आप यह एक 2, 3, Nth समय कर रहे हैं ...

    $ tar -xzvf Python-2.7.3.tgz
    $ cd Python-2.7.3
    $ make clean
    $ ./configure --prefix=/path/to/pyenv
    $ make && make install
    $ cd ../../
    $ ls
    dep    env    pyenv
  4. अपना virtualenv बनाएँ

    $ dep/virtualenv.py --python=/path/to/pyenv/bin/python --verbose env
  5. सिम्लिंक को python2.7 के भीतर ठीक करें env/include/

    $ ls -l env/include/
    $ cd !$
    $ rm python2.7
    $ ln -s ../../pyenv/include/python2.7 python2.7
    $ cd ../../
  6. एनवी में शेष अजगर सहिष्णुता को ठीक करें। आपको प्रतीकात्मक रूप से लिंक की गई निर्देशिकाओं को हटाना होगा और उन्हें ऊपर की तरह फिर से बनाना होगा। इसके अलावा, यहाँ प्रतीकात्मक लिंक निर्माण को लागू करने के लिए वाक्यविन्यास है।

    $ ls -l env/lib/python2.7/
    $ cd !$
    $ ln -sf ../../../pyenv/lib/python2.7/UserDict.py UserDict.py
    [...repeat until all symbolic links are relative...]
    $ cd ../../../
  7. परीक्षा

    $ python --version
    Python 2.7.1
    $ source env/bin/activate
    (env)
    $ python --version
    Python 2.7.3

अलोहा।


1
चरण 4 में ऐसा लगता है कि पाइप मॉड्यूल की आवश्यकता है। नवीनतम पायथन 2.7.9 के साथ की कोशिश की।
रोमन सूसी

1
बहुत सारी त्रुटियों के साथ बहुत ही अधूरा जवाब देने की कोशिश की जा रही है।
एलेक्स आर

4

मैं virtualenvwrapper का उपयोग कर रहा हूं और $ PATH को संशोधित नहीं करना चाहता, यहां बताया गया है:

$ which python3
/usr/local/bin/python3

$ mkvirtualenv --python=/usr/local/bin/python3 env_name

3

सामान्य दृष्टिकोण स्रोत को डाउनलोड करने और स्थानीय रूप से (और सीधे वर्चुअनव्यू में) स्थापित करने और स्थापित करने के लिए है, और फिर उस स्थानीय पायथन इंस्टॉल का उपयोग करके एक नया वर्चुअन बनाएं। कुछ प्रणालियों पर, स्रोत से निर्माण के बजाय, एक प्रीबिल्ट अजगर को डाउनलोड और इंस्टॉल करना संभव हो सकता है।


3

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


कॉन्डा स्थापित करें (इसके लिए आपको एक virtualenv की आवश्यकता हो सकती है)

pip install conda

एक कोंडा environent के अंदर एक नया पायथन संस्करण स्थापित करना

मैं यहाँ इस जवाब को जोड़ रहा हूँ क्योंकि कोई मैनुअल डाउनलोड की आवश्यकता नहीं है। condaआपके लिए वही करेंगे।

अब आप चाहते हैं कि पायथन संस्करण के लिए एक वातावरण बनाएं। इस उदाहरण में मैं उपयोग करूंगा 3.5.2, क्योंकि यह लेखन के इस समय का नवीनतम संस्करण है (अगस्त 2016)।

conda create -n py35 python=3.5.2

संकुल स्थापित करने के लिए कोंडा के लिए एक वातावरण तैयार करेगा


इस वातावरण को सक्रिय करने के लिए (मैं लिनेक्स को अन्यथा मान रहा हूं कि कोंडा डॉक्स की जांच करें ):

source activate py35

अब जो कुछ भी आवश्यक है उसे आप एन्टिसलेमेंट में पाइप या कोंडा के माध्यम से स्थापित करें (कोंडा में बेहतर बाइनरी पैकेज सपोर्ट है)।

conda install <package_name>

2

आप पाइनेव का उपयोग कर सकते हैं।

वहाँ विभिन्न संस्करणों एनाकोंडा, jython, pypy और बहुत सारे हैं ...

https://github.com/yyuu/pyenv

के रूप में सरल रूप में स्थापना pyenv install 3.2.6

pyenv install --list
Available versions:
  2.1.3
  2.2.3
  2.3.7
  2.4
  2.4.1
  2.4.2
  2.4.3
  2.4.4
  2.4.5
  2.4.6
  2.5
  2.5.1
  2.5.2
  2.5.3
  2.5.4
  2.5.5
  2.5.6
  2.6.6

...


1

हालाँकि यह प्रश्न विशेष रूप से 2.6 स्थापित करने का वर्णन करता है, मैं कुछ आयातकों को उत्कृष्ट उत्तर में जोड़ना चाहता हूँ, यदि कोई व्यक्ति इस पार आता है। रिकॉर्ड के लिए, मेरा मामला यह था कि मैं एक ubuntu 10.04 बॉक्स पर 2.7 स्थापित करने की कोशिश कर रहा था।

सबसे पहले, यहाँ सभी उत्तरों में वर्णित विधियों के बारे में मेरी प्रेरणा यह है कि डेडस्कैक के पीपा से पायथन को स्थापित करना कुल विफलता रही है। तो एक स्थानीय पायथन का निर्माण रास्ता तय करना है।

ऐसा करने की कोशिश करने के बाद, मैंने सोचा कि पाइप की डिफ़ॉल्ट स्थापना के साथ ( sudo apt-get install pipपर्याप्त) भरोसा करना पर्याप्त होगा। यह दुर्भाग्य से गलत है। यह पता चला कि मुझे गंदे मुद्दों के सभी झटके लग रहे थे और आखिरकार एक वर्चुअन बनाने में सक्षम नहीं थे।

इसलिए, मैं अत्यधिक की सलाह देते हैं स्थानीय स्तर पर पिप स्थापित के साथ wget https://raw.github.com/pypa/pip/master/contrib/get-pip.py && python get-pip.py --userइस संबंधित प्रश्न ने मुझे यह संकेत दिया।

अब यदि यह काम नहीं करता है, तो सुनिश्चित करें कि libssl-devUbuntu के लिए या openssl-devCentOS के लिए स्थापित है। उन्हें स्थापित करें apt-getया yumफिर पायथन का निर्माण करें (यदि पहले से स्थापित है तो कुछ भी निकालने की आवश्यकता नहीं है, शीर्ष पर ऐसा करें)। get-pipइसके बारे में शिकायत है, आप import sslएक पाई खोल पर चलाकर जांच कर सकते हैं ।

अंतिम, घोषित .local/binऔर स्थानीय अजगर को पथ, साथ which pipऔर जाँच करने के लिए मत भूलना which python


1

Pyenv के साथ पूर्ण गाइड

यदि pyenv स्थापित नहीं है, तो इसे pyenv-इंस्टॉलर के साथ स्थापित करें :

$ curl https://pyenv.run | bash

किसी भी कस्टम अजगर संस्करण का उपयोग करने के लिए, उदाहरण के 3.5.6लिए निम्न का उपयोग करें:

pyenv install 3.5.6
pyenv virtualenv 3.5.6 name_of_your_env
pyenv activate name_of_your_env

0

नहीं, लेकिन आप अपनी निर्देशिका के तहत एक अलग पायथन बिल्ड (जैसे कि ActivePython ) स्थापित कर सकते हैं $HOME

यह दृष्टिकोण सबसे तेज़ है , और आपको स्वयं पायथन को संकलित करने की आवश्यकता नहीं है।

(बोनस के रूप में, आपको ActiveState के बाइनरी पैकेज मैनेजर का उपयोग करने के लिए भी मिलता है )


वास्तव में गलत है क्योंकि virtualenv एक और पायथन संस्करण स्थापित करने में सक्षम है।
रातो

0

मुझे उपयुक्त उत्तर नहीं मिला है, इसलिए यहां मेरा ले जाता है, जो @toszter उत्तर पर बनाता है, लेकिन सिस्टम पायथन का उपयोग नहीं करता है (और आप जानते हो सकते हैं, सिस्टम के स्तर पर सेटप्टूल और वर्चुनेल को स्थापित करना हमेशा अच्छा नहीं होता है, जो कई के साथ काम करते हैं) अजगर विन्यास):

#!/bin/sh

mkdir python_ve
cd python_ve

MYROOT=`pwd`
mkdir env pyenv dep

cd ${MYROOT}/dep
wget https://pypi.python.org/packages/source/s/setuptools/setuptools-15.2.tar.gz#md5=a9028a9794fc7ae02320d32e2d7e12ee
wget https://raw.github.com/pypa/virtualenv/master/virtualenv.py
wget https://www.python.org/ftp/python/2.7.9/Python-2.7.9.tar.xz
xz -d Python-2.7.9.tar.xz

cd ${MYROOT}/pyenv
tar xf ../dep/Python-2.7.9.tar
cd Python-2.7.9
./configure --prefix=${MYROOT}/pyenv && make -j 4 && make install

cd ${MYROOT}/pyenv

tar xzf ../dep/setuptools-15.2.tar.gz

cd ${MYROOT}

pyenv/bin/python dep/virtualenv.py --no-setuptools --python=${MYROOT}/pyenv/bin/python --verbose env
env/bin/python pyenv/setuptools-15.2/setup.py install
env/bin/easy_install pip

echo "virtualenv in ${MYROOT}/env"

यहाँ चिकन-अंडे की समस्या को तोड़ने की तरकीब पहले बगैर सेप्टुपुल के वर्चुअन बनाना है, क्योंकि यह अन्यथा विफल हो जाता है (पाइप नहीं मिल सकता है)। पाइप / पहिया को सीधे स्थापित करना संभव हो सकता है, लेकिन किसी भी तरह से easy_install पहली बात थी जो मेरे दिमाग में आई थी। इसके अलावा, ठोस संस्करणों को हटाकर स्क्रिप्ट में सुधार किया जा सकता है।

एनबी। स्क्रिप्ट में xz का उपयोग करना।


0

सबसे पहले, भयानक जवाब के लिए धन्यवाद DTing। यह बहुत सही है।

उन लोगों के लिए जो साझा होस्टिंग में जीसीसी की पहुंच नहीं होने के कारण पीड़ित हैं, स्कॉट स्टैफ़ोर्ड जैसे सामान्य अजगर के बजाय गो फॉर एक्टिवपाइथन के लिए जाएं। यहाँ उसके लिए आज्ञा हैं।

wget http://downloads.activestate.com/ActivePython/releases/2.7.13.2713/ActivePython-2.7.13.2713-linux-x86_64-glibc-2.3.6-401785.tar.gz

tar -zxvf ActivePython-2.7.13.2713-linux-x86_64-glibc-2.3.6-401785.tar.gz

cd ActivePython-2.7.13.2713-linux-x86_64-glibc-2.3.6-401785

./install.sh

यह आपको अजगर निर्देशिका का मार्ग पूछेगा। दर्ज

../../.localpython

बस डीटीइंग के उत्तर में चरण 1 से ऊपर की जगह लें और उसके बाद चरण 2 के साथ आगे बढ़ें। कृपया ध्यान दें कि ActivePython पैकेज URL नई रिलीज़ के साथ बदल सकता है। आप हमेशा यहां से नया URL प्राप्त कर सकते हैं: http://www.activestate.com/activepython/downloads

URL के आधार पर आपको प्राप्त फ़ाइल के आधार पर टार और सीडी कमांड का नाम बदलना होगा।

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