Virtualenv के साथ विभिन्न पायथन संस्करण का उपयोग करें


1111

मेरे पास एक डेबियन सिस्टम है जो वर्तमान में अजगर 2.5.4 के साथ चल रहा है। मैं virtualenv ठीक से स्थापित है, सब कुछ ठीक काम कर रहा है। क्या कोई संभावना है कि मैं एक वर्चुअन का उपयोग पायथन के एक अलग संस्करण के साथ कर सकता हूं?

मैंने पाइथन 2.6.2 को संकलित किया और कुछ वर्चुअन के साथ इसका उपयोग करना चाहूंगा। क्या द्विआधारी फ़ाइल को अधिलेखित करने के लिए पर्याप्त है? या मुझे पुस्तकालयों के संबंध में कुछ बदलना है?


8
बस यह उल्लेख करते हुए कि आप virtualenvwrapper का उपयोग करके भी ऐसा कर सकते हैं।
पक्षपात

13
पायथन 3 में ध्यान देने योग्य यह है कि, एक बिल्ट-इन वर्चुअनव समतुल्य है: वेनव
naught101

2
क्या नए माहौल को बनाए बिना मौजूदा माहौल में अजगर संस्करण को बदलना संभव नहीं है?
चार्ली पार्कर

जवाबों:


1540

बस का उपयोग --python(या कम -pनिष्पादन आप उपयोग करते हैं, उदाहरण के लिए करना चाहते हैं अजगर निर्दिष्ट करने के लिए जब अपने virtualenv उदाहरण बनाकर) विकल्प:

virtualenv --python=/usr/bin/python2.6 <path/to/new/virtualenv/>

एनबी फॉर पायथन 3.3 या बाद में, नीचे दिए गए एफिलिन के उत्तर को देखें।


160
मुझे लगा कि मैं virtualenvwrappers के लिए भी काम करता हूं: mkvirtualenv -p python2.6 env
bias

64
मैं यहाँ कुछ याद कर रहा हूँ - यह आवश्यक नहीं है कि 2.6 सिस्टम पर पहले से ही स्थापित हो? मैंने सोचा था कि बिंदु virtualenv का था मैं मुख्य एक (मेरे मामले में, 2.4 CentOS पर) के अलावा अन्य अजगर का एक संस्करण हो सकता था। मैं मान रहा था कि मैं virtualenv स्थापित कर सकता हूं, फिर इसका उपयोग करने के लिए env में संकुल के लिए Python 2.6 को इसके नीचे स्थापित करें?
जॉन सी

42
@ जॉन हाँ, तुम हो। यह virtualenv की बात नहीं है: इसका मतलब यह है कि पायथन के लिए एक सैंडबॉक्सिंग वातावरण बनाना है। आपको पहले उस संस्करण को स्थापित करना होगा - आप इसे अपने उपयोगकर्ता के लिए स्थानीय रूप से स्थापित कर सकते हैं, हालांकि।
डैनियल रोसमैन

8
@ जॉन्क आप वैकल्पिक अजगर स्थापित करने के लिए अजगर का उपयोग कर सकते हैं।
ashwoods 22

54
: यदि आप एक बालक आलसी हैंvirtualenv -p `which python2.6` <path/to/new/virtualenv>
जलते

292

पायथन 3 के बाद से, पायथन डॉक्स निम्नलिखित कमांड के साथ आभासी वातावरण बनाने का सुझाव देता है :

python3 -m venv <myenvname>

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


अप्रचलित जानकारी

pyvenv स्क्रिप्ट एक आभासी वातावरण बनाने के लिए इस्तेमाल किया जा सकता है

pyvenv /path/to/new/virtual/environment

लेकिन इसे पायथन 3.6 के बाद से हटा दिया गया है।


8
खुशी है कि आपने बताया कि इसे और बढ़ावा देने की जरूरत है। एक मामूली नाइट: वे अब इसे चलाने की वकालत कर रहे हैं python3 -m venv <envname>ताकि हर चीज के लिए स्टब स्क्रिप्ट की जरूरत को रोका जा सके।
पॉल एवरिट

6
वास्तव में pyvenvस्क्रिप्ट है पदावनत , अजगर 3.6+ में हालांकि अंतर्निहित venvमॉड्यूल में ही नहीं है। इसलिए python 3 -m venv <myenvname>@PaulEveritt कहते हैं।
रिचवेल

5
चेतावनी दें कि स्क्रिप्ट को स्थापित न करें pyvenvया python3 -m venv ...न करें python-config। इसका मतलब यह है कि आपके पायथन 3 वातावरण को सक्रिय करने के बाद भी सिस्टम-वाइड python-configको भ्रमित करने वाले परिणामों से आमंत्रित किया जाएगा। 2011 से इस बग रिपोर्ट देखें github.com/pypa/virtualenv/issues/169 और मेरे सवाल stackoverflow.com/questions/42020937/...
Laryx पत्या

1
"कृपया ध्यान दें कि venvपायथन के अन्य संस्करणों के साथ वर्चुअन बनाने की अनुमति नहीं देता है।" - क्या आपको यकीन है कि यह सच है? यह मेरे लिए ठीक काम करता है अगर मैं इसे एक विशिष्ट पायथन संस्करण के साथ बनाता हूं, उदाहरण के लिए python3.5 -m venv <myenvname>(बशर्ते कि मेरे पास पायथन का वह संस्करण उपलब्ध है)।
डोमिनिक पास्टोर

5
यह पुष्टि करते हुए कि @ निक का अवलोकन काम करता है: venvएक विशिष्ट पायथन संस्करण के साथ बनाने का तरीका उस संस्करण का उपयोग करते समय इसे स्थापित करना है। उदाहरण के लिए:python3.5 -m venv venv
tanius

183

जब आप एक साझा होस्टिंग परिवेश पर होते हैं, तो ये चरण हैं और स्रोत से पायथन को स्थापित करने और संकलित करने की आवश्यकता है और फिर venvअपने पायथन संस्करण से बनाएं । पायथन 2.7.9 के लिए। आप इन पंक्तियों के साथ कुछ करेंगे:

mkdir ~/src
wget http://www.python.org/ftp/python/2.7.9/Python-2.7.9.tgz
tar -zxvf Python-2.7.9.tgz
cd Python-2.7.9
mkdir ~/.localpython
./configure --prefix=$HOME/.localpython
make
make install

आभासी एन.वी.

cd ~/src
wget https://pypi.python.org/packages/5c/79/5dae7494b9f5ed061cff9a8ab8d6e1f02db352f3facf907d9eb614fb80e9/virtualenv-15.0.2.tar.gz#md5=0ed59863994daf1292827ffdbba80a63
tar -zxvf virtualenv-15.0.2.tar.gz
cd virtualenv-15.0.2/
~/.localpython/bin/python setup.py install
virtualenv ve -p $HOME/.localpython/bin/python2.7
source ve/bin/activate   

स्वाभाविक रूप से, यह किसी भी स्थिति पर लागू हो सकता है जहां आप अपने द्वारा काम करने वाले और उस पर तैनात सटीक वातावरण को दोहराने के लिए चाहते हैं।


2
क्या आप इसे इस तरह से करने के बारे में विस्तार से बता सकते हैं: स्थानीय रूप से अजगर क्यों स्थापित करें? और अधिक महत्वपूर्ण बात यह है कि क्यों आप इसके साथ उपयोग करना चाहते हैं अजगर संस्करण का उपयोग करके virtualenv स्थापित करें ?
लजार्रे

15
ज़रूर। यदि आप वर्चुअल होस्टिंग वातावरण पर हैं और सर्वर अजगर के पुराने संस्करणों को प्रदान करता है जिससे आप खुश नहीं हैं - तो यह मेरा मामला था। इसके अलावा, अगर आप विभिन्न सर्वरों पर प्रोजेक्ट विकसित करने के लिए होते हैं और आप अपने स्थानीय मशीन पर इन वातावरणों को दोहराना चाहते हैं .... तो वर्चुअन पायथन लिबास के लिए हार्ड लिंक बनाता है। इसलिए यह सच में महत्वपूर्ण है कि अजगर के संस्करण के साथ आप Virtualenv को स्थापित करने और बनाने के लिए उपयोग कर रहे हैं।
zzart

6
या अगर आप मेरे जैसे हैं और बिना किसी सूडो विशेषाधिकारों के साथ काम करने वाली लॉक डाउन मशीन पर हैं। पुस्तकालयों, एसक्यूएल डेटाबेस, भाषाओं और कंपाइलरों की स्थानीय प्रतियां प्रचुर मात्रा में! धन्यवाद!
zachd1_618

4
वर्चुअन 1.9.1 के तहत, मुझे बिना त्रुटियों को पूरा करने के लिए सेटअप के ~/.localpython/bin/virtualenvबजाय उपयोग करना था virtualenv। इसके अलावा, के source ve/bin/activateबजाय का उपयोग करें source activate
शाऊल

3
ऐसा करने का एक और कारण यह भी होगा कि बेट्स को आज़माने से पहले वे यह सुनिश्चित करें कि आपकी परियोजनाएँ और उनकी निर्भरताएँ अभी भी काम कर रही हैं, बिना किसी पैकेज के कुछ को रोककर और सभी जगहों पर झूलने वाली फाइलों को छोड़ कर आपके पैकेज प्रबंधन को जोखिम में डाले बिना। मुझे यह उत्तर पसंद है।
रोबॉटहैंस

103
virtualenv --python=/usr/bin/python2.6 <path/to/myvirtualenv>

2
पर्यावरण चर का उपयोग करके समतुल्य समाधान के लिए नीचे मेरा उत्तर देखें। उस दृष्टिकोण का मतलब है कि आपको उपयोग करने के लिए याद नहीं रखना है -p
क्रिस जॉनसन

5
क्या कोई समाधान नहीं है जो नए आभासी वातावरण बनाने की आवश्यकता के बिना अजगर संस्करणों के बीच स्विच करता है?
चार्ली पार्कर

3
क्या यह काम करेगा, यदि आप एक अजगर संस्करण स्थापित करना चाहते हैं जो आपके सिस्टम पर स्थापित नहीं है? कहते हैं कि आप परीक्षण करना चाहते हैं, python3.6लेकिन python3.5अपने कंप्यूटर पर इंस्टॉल नहीं करना चाहते हैं ?
अल्फा_989

1
@ अल्फ़ा_989 क्या आप ऐसा करने का हल ढूंढ रहे हैं?
डेनियल मशकिन

96

एक आसान तरीका है,

virtualenv venv --python=python2.7

एक टिप्पणी के लिए धन्यवाद, यह केवल तभी काम करता है जब आपके पास सिस्टम स्तर पर python2.7 स्थापित हो (जैसे /usr/bin/python2.7)।

अन्यथा, यदि आप होमब्रे का उपयोग कर रहे हैं तो आप जो चाहते हैं उसे देने के लिए पथ का उपयोग कर सकते हैं।

virtualenv venv --python=/usr/local/bin/python

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

which python

यह अजगर 3 के साथ भी काम करेगा।

which python3
>> /usr/local/bin/python3
virtualenv venv --python=/usr/local/bin/python3

अंततः संघनक:

virtualenv venv -p `which python`
virtualenv venv -p `which python3`

1
FYI करें, केवल तभी काम करता है जब आपके पास python2.7 सिस्टम स्तर पर स्थापित हो (जैसे
/usr/bin/python2.7

मैं के साथ ऐसा करने में सक्षम था virtualenv venv --python=python3.6के रूप में अच्छी तरह से
जॉर्डन

आप वास्तव में मामूली संस्करण संख्या को छोड़ सकते हैं। virtualenv env --python=python2
अंशुल

यह एक उचित समाधान है, एक बार जब आपके पास सभी संस्करण हैं, तो आप पूरी तरह से नहीं उर्फ ​​का उपयोग करने में रुचि रखते हैं
user1767754

विंडोज में, यह एक मामूली virtualenv venv --python=<insert_your_python_version_here><insert_your_python_version_here>C:\Python\Python368\python.exe
मोड़ के

70

मेरे लिए विंडोज के तहत यह काम करता है:

virtualenv --python=c:\Python25\python.exe envname

बिना python.exeमुझे मिले WindowsError: [Error 5] Access is denied मुझे Python2.7.1 virtualenv 1.6.1 के साथ स्थापित किया गया है, और मुझे अजगर 2.5.2 चाहिए था।


32

मैक OSX 10.6.8 (हिम तेंदुआ):

1) जब आप करते हैं pip install virtualenv, तो पाइप कमांड आपके एक अजगर संस्करण के साथ जुड़ा होता है, और virtualenvअजगर के उस संस्करण में स्थापित हो जाता है। तुम कर सकते हो

 $ which pip   

देखने के लिए कि अजगर का क्या संस्करण है। यदि आप कुछ इस तरह देखते हैं:

 $ which pip
 /usr/local/bin/pip

फिर करो:

$ ls -al /usr/local/bin/pip
lrwxrwxr-x  1 root  admin  65 Apr 10  2015 /usr/local/bin/pip ->
../../../Library/Frameworks/Python.framework/Versions/2.7/bin/pip

आप आउटपुट में अजगर संस्करण देख सकते हैं।

डिफ़ॉल्ट रूप से, यह आपके द्वारा बनाए गए किसी भी नए वातावरण के लिए उपयोग किए जाने वाले अजगर का संस्करण होगा। हालाँकि, आप अपने कंप्यूटर पर किसी नए वातावरण में उपयोग करने के लिए अजगर के किसी भी संस्करण को निर्दिष्ट कर सकते हैं -p flag:

$ virtualenv -p python3.2 my_env  
Running virtualenv with interpreter /usr/local/bin/python3.2  
New python executable in my_env/bin/python  
Installing setuptools, pip...done.  

virtualenv my_env वर्तमान निर्देशिका में एक फ़ोल्डर बनाएगा जिसमें पायथन निष्पादन योग्य फाइलें और पाइप की एक प्रति होगी [कमांड] जिसे आप अन्य पैकेजों को स्थापित करने के लिए उपयोग कर सकते हैं।

http://docs.python-guide.org/en/latest/dev/virtualenvs/

virtualenv बस आपके कंप्यूटर पर एक स्थान से अजगर को नए बनाए गए my_env / bin / directory में कॉपी करता है।

2) सिस्टम अजगर में है /usr/bin, जबकि मेरे द्वारा स्थापित विभिन्न अजगर संस्करण डिफ़ॉल्ट रूप से, में स्थापित किए गए हैं:

 /usr/local/bin

3) मैंने जो विभिन्न अजगर स्थापित किए हैं, उनके नाम python2.7या जैसे हैं python3.2, और मैं उन नामों का उपयोग कर सकता हूं बजाय पूर्ण पथ के।

======== VIRTUALENVWRAPPER =========

1) मुझे काम करने के लिए virtualenvwrapper होने में कुछ समस्याएं थीं। यह वही है जो मैंने अंदर डाला ~/.bash_profile:

export WORKON_HOME=$HOME/.virtualenvs
export PROJECT_HOME=$HOME/django_projects  #Not very important -- mkproject command uses this
#Added the following based on: 
#http://stackoverflow.com/questions/19665327/virtualenvwrapper-installation-snow-leopard-python
export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python2.7 
#source /usr/local/bin/virtualenvwrapper.sh
source /Library/Frameworks/Python.framework/Versions/2.7/bin/virtualenvwrapper.sh

2) -p optionवर्चुअनव्रेपर के साथ अलग तरीके से काम करता है: मुझे नए वातावरण में उपयोग किए जाने वाले अजगर दुभाषिया के लिए पूरा रास्ता बताना होगा (जब मैं डिफ़ॉल्ट पायथन संस्करण का उपयोग नहीं करना चाहता):

$ mkvirtualenv -p /usr/local/bin/python3.2 my_env
Running virtualenv with interpreter /usr/local/bin/python3
New python executable in my_env/bin/python
Installing setuptools, pip...done.
Usage: source deactivate

removes the 'bin' directory of the environment activated with 'source
activate' from PATH. 

Virtualenv के विपरीत, virtualenvwrapper $ WORKON_HOME पर्यावरण चर द्वारा निर्दिष्ट स्थान पर वातावरण बनाएगा। जो आपके सभी वातावरण को एक जगह पर रखता है।


which pipमुझे पायथन का संस्करण नहीं बताता। यह मेरे इस- देता है /usr/local/bin/pip
संकल्प

@ संकल्प, यदि आप सीडी करते हैं /usr/local/binऔर करते हैं $ ls -al pip, तो आपको कुछ इस तरह देखना चाहिए: pip -> ../../../Library/Frameworks/Python.framework/Versions/2.7/bin/pip
7stud

पहले से ही उत्तर में कुछ हद तक उल्लेख किया गया है, लेकिन mkprojectयदि आप चाहते हैं कि यह परियोजना निर्देशिका और किसी दिए गए अजगर संस्करण के आभासी वातावरण दोनों का उपयोग करने के लिए है। mkproject -p /usr/bin/python3.6 myNewPython36Project
जिम फैक्टर

22

इन दो आदेशों को ठीक काम करना चाहिए।

virtualenv -p python2 myenv (अजगर 2 के लिए)

virtualenv -p python3 myenv (अजगर 3 के लिए)


1
झंडा-पी python2 / usr / bin / python2 की तलाश के बराबर काम करता है। उपयोग: virtualenv -p python2.7 2.7 के लिए myenv आदि
यश शर्मा

21

मान लीजिए कि आपके वर्तमान में आपके वर्चुअन में अजगर 2.7 स्थापित है। लेकिन इसका उपयोग करना चाहते हैं python3.2, तो आपको इसके साथ अपडेट करना होगा:

$ virtualenv --python=/usr/bin/python3.2 name_of_your_virtualenv

इसके बाद अपने virtualenv को सक्रिय करें :

$ source activate name_of_your_virtualenv

और फिर करें: python --versionयह जांचने के लिए कि आपका संस्करण अब अपडेट है या नहीं।


पर्यावरण चर का उपयोग करके समतुल्य समाधान के लिए नीचे मेरा उत्तर देखें। उस दृष्टिकोण का मतलब है कि आपको उपयोग करने के लिए याद नहीं रखना है -p
क्रिस जॉनसन

13

आप अपने virtualenvइच्छित अजगर संस्करण के साथ कॉल कर सकते हैं। उदाहरण के लिए:

python3 -m virtualenv venv

या वैकल्पिक रूप से सीधे अपने virtualenv पथ को इंगित करें। खिड़कियों के लिए उदाहरण:

c:\Python34\Scripts\virtualenv.exe venv

और चलाकर:

venv/bin/python

Python 3.5.1 (v3.5.1:37a07cee5969, Dec  5 2015, 21:12:44) 
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>

आप वर्चुअल वातावरण में स्थापित अजगर संस्करण देख सकते हैं


मुझे पहली कमांड / usr / लोकल / बिन / python3 चलाने पर यह त्रुटि मिली: virtualenv नाम का कोई मॉड्यूल नहीं
tanvi

2
@tanvi: आपको पहले अपने python3 में virtualenv इंस्टॉल करना होगा। pip3 install virtualenvपहली दौड़
नीमा सोरूस

12

-pदृष्टिकोण अच्छी तरह से काम करता है, लेकिन आप इसे हर बार उपयोग करने के लिए याद करने के लिए नहीं है। यदि आपका लक्ष्य आमतौर पर पायथन के एक नए संस्करण पर स्विच करना है, तो यह एक दर्द है और गलतियों को भी जन्म दे सकता है।

आपका अन्य विकल्प एक पर्यावरण चर सेट करना है जो कि जैसा काम करता है -p। इसे अपनी ~/.bashrcफ़ाइल के माध्यम से सेट करें या जहाँ भी आप अपने लॉगिन सत्रों के लिए पर्यावरण चर का प्रबंधन करते हैं:

export VIRTUALENV_PYTHON=/path/to/desired/version

फिर virtualenvउस समय का उपयोग करेंगे जब आप -pकमांड लाइन पर निर्दिष्ट नहीं करेंगे ।


इसने खूबसूरती से काम किया। Virtualenvwrapper डॉक्स केexport VIRTUALENVWRAPPER_PYTHON=/path/to/desired/version अनुसार कोई भी विचार क्यों काम नहीं करता है, लेकिन यह समाधान काम करता है?
YPCrumble

यह एनवी संस्करण नियंत्रित करता है जिसे पायथन virtualenvwrapperचलाते समय उपयोग करता है, इंस्टॉल के साथ कुछ नहीं करना है।
क्रिस जॉनसन

इसने मेरे लिए काम किया। अब मुझे हर बार एक नया वर्चुअन बनाने के लिए -p का उपयोग नहीं करना पड़ता है। धन्यवाद!
nedblorf

7

आपके लिए python2 खोजने के लिए कमांड प्रतिस्थापन का उपयोग करके और भी आसान:

virtualenv -p $(which python2) <path/to/new/virtualenv/>

या virtualenvwrapper का उपयोग करते समय:

mkvirtualenv -p $(which python2) <env_name>


7

मैक (हाई सिएरा) के लिए, python3 पर virtualenv स्थापित करें और python2 के लिए एक virtualenv बनाएँ:

 $ python3 -m pip install virtualenv
 $ python3 -m virtualenv --python=python2 vp27
 $ source vp27/bin/activate
 (vp27)$ python --version
 Python 2.7.14

1
अगर आपके पास नहीं है तो python3 पर virtualenv इंस्टॉल करें:python3 -m pip install virtualenv
Zhahao Zhao

यह काम नहीं करता है। मेरा अजगर संस्करण अभी भी 3. है
शिवेंद्र प्रताप सिंह

6

मैक पर मैं pyenv और virtualenvwrapper का उपयोग करता हूं। मुझे एक नया वर्चस्व बनाना था। तुम homebrew की जरूरत है जो मुझे लगता है कि तुम स्थापित कर रहे हैं अगर आप एक मैक पर कर रहे हैं, लेकिन सिर्फ मनोरंजन के लिए:

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"


brew install pyenv
pyenv install 2.7.10
pyenv global 2.7.10
export PATH=/Users/{USERNAME}/.pyenv/versions/2.7.10/bin:$PATH
mkvirtualenv -p ~/.pyenv/versions/2.7.10/bin/python  {virtual_env_name}

मैंने अपनी आवश्यकताओं को पहले ही पूरा कर लिया था, इसलिए मैं नए वर्चुअन में बस पुनः स्थापित कर सकता था:

pip install -r requirements.txt

कमांड mkvirtualenv -p ~/.pyenv/versions/2.7.10/bin/python {virtual_env_name}संस्करण होना चाहिए , संस्करण नहीं। यदि SO ने लघु संपादन की अनुमति दी, तो मैंने इसे ठीक कर दिया।
मार्टिन बर्च

pyenvpyenv-virtualenvप्लगइन के माध्यम से virtualenv समर्थन शामिल है , इसलिए मुझे लगता है कि मुझे वास्तव में virtualenvwrapper की आवश्यकता नहीं है। मेरे pyenv उत्तर में अधिक जानकारी ।
रिचवेल

5

[नवंबर २०१ ९] मुझे अपने पायथन ३.--आधारित आर्क लिनक्स सिस्टम पर पायथन ३.९ वातावरण (env) स्थापित करने की आवश्यकता थी। पायथॉन 3.7 अब सिस्टम पर नहीं था, इसलिए मैं पायथन को डाउनग्रेड नहीं कर सका, जिसे मुझे जरूरत थी एक पैकेज स्थापित करने के लिए।

इसके अलावा, मैं एक आभासी वातावरण (वेनव) के अंदर उस पैकेज / पायथन 3.7 का उपयोग करना चाहता था। मैंने इस तरह से इसे किया।


पायथन संस्करण स्रोत फ़ाइलें डाउनलोड करें:

मैंने पायथन 3.7.4 स्रोत फ़ाइलों को डाउनलोड किया है

https://www.python.org/downloads/source/

सेवा

/mnt/Vancouver/apps/python_versions/src/Python-3.7.4.tgz

मैंने तब उस संग्रह (स्रोत फ़ाइलें) को निकाला

/mnt/Vancouver/apps/python_versions/src/Python-3.7.4/


स्थापना:

[नोट: मेरे सिस्टम एनवी में, वेनव नहीं।]

cd /mnt/Vancouver/apps/python_versions/src/Python-3.7.4/
time ./configure                 ## 17 sec
time make                        ## 1 min 51 sec
time sudo make install           ## 18 sec
time make clean                  ## 0.3 sec

पायथन संस्करणों को स्थापित परीक्षण:

$ which python
/usr/bin/python

$ python --version
Python 3.8.0

$ which python3.7
/usr/local/bin/python3.7

$ python    ## Python 3.8 [system / env]
Python 3.8.0 (default, Oct 23 2019, 18:51:26) 
[GCC 9.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>

$ python3.7    ## newly-installed Python 3.7 package
Python 3.7.4 (default, Nov 20 2019, 11:36:53) 
[GCC 9.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> print(sys.version)
3.7.4 (default, Nov 20 2019, 11:36:53) 
[GCC 9.2.0]
>>>

$ python3.7 --version                                                                                                 
Python 3.7.4

एक विशिष्ट पायथन संस्करण के लिए एक वेव कैसे बनाएं:

https://docs.python.org/3/tutorial/venv.html

12.2। रचनात्मक वातावरण बनाना

वर्चुअल वातावरण बनाने और प्रबंधित करने के लिए उपयोग किए जाने वाले मॉड्यूल को कहा जाता है venvvenvआमतौर पर आपके द्वारा उपलब्ध पायथन के सबसे हाल के संस्करण को स्थापित करेगा। यदि आपके पास अपने सिस्टम पर पायथन के कई संस्करण हैं, तो आप python3 या जो भी आप चाहते हैं, चलाकर एक विशिष्ट पायथन संस्करण का चयन कर सकते हैं।

एक आभासी वातावरण बनाने के लिए, उस निर्देशिका को तय करें जहां आप उसे रखना चाहते हैं, और वेव मॉड्यूल को निर्देशिका पथ के साथ स्क्रिप्ट के रूप में चलाएं:

python3 -m venv tutorial-env

यह बनाएगा tutorial-envअगर यह मौजूद नहीं है निर्देशिका, और भी इसके अंदर निर्देशिका पायथन दुभाषिया, मानक पुस्तकालय, और विभिन्न समर्थन फ़ाइलों की एक प्रतिलिपि युक्त पैदा करते हैं। ...


पायथन ३.३ वेनव बनाएं [पायथन ३.१ ऑपरेटिंग इनव / सिस्टम पर]:

python3.7 -m venv ~/venv/py3.7      ## create Python 3.7-based venv
source ~/venv/py3.7/bin/activate    ## activate that venv
deactivate                          ## deactivate that venv (when done, there)

इसमें जोड़ा गया ~/.bashrc:

alias p37='echo "   [Python 3.7 venv (source ~/venv/py3.7/bin/activate)]" && source ~/venv/py3.7/bin/activate'

टेस्ट पायथन 3.7 वेनव:

$ p37                                                                                                                 
[Python 3.7 venv (source ~/venv/py3.7/bin/activate)]

(py3.7)$ python --version
Python 3.7.4

(py3.7)$ python
Python 3.7.4 (default, Nov 20 2019, 11:36:53) 
[GCC 9.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> print(sys.version)
3.7.4 (default, Nov 20 2019, 11:36:53) 
[GCC 9.2.0] 
>>>

1
यह एक अत्यंत गहन उत्तर है! :) मैं हर बार इस मुद्दे का सामना करता हूं मुझे आर्क लिनक्स से किसी अन्य (जैसे डेबियन-ईश) प्रणाली में कुछ स्थानांतरित करने की आवश्यकता है।
रोबी कैप्स

1
@Victoria स्टुअर्ट, आपको बहुत बहुत धन्यवाद। यही वह है जिसकी तलाश में मैं हूं।
१il पर डैडीयोडेविल

4

लिनक्स के लिए विंडोज़ सबसिस्टम में:

  1. Python3 के लिए वातावरण बनाएं:

    virtualenv --python=/usr/bin/python3 env
  2. इसे सक्रिय करें:

    source env/bin/activate

3

खिड़कियों पर:

py -3.4x32 -m venv venv34

या

py -2.6.2 -m venv venv26

यह pyलॉन्चर का उपयोग करता है जो आपके लिए सही अजगर निष्पादित करेगा (यह मानते हुए कि आपने इसे स्थापित किया है)।


3

हां , उपरोक्त उत्तर सही हैं और लिनक्स और मैक ओएस एक्स जैसे यूनिक्स आधारित प्रणालियों पर ठीक काम करता है ।

मैंने निम्नलिखित आदेशों के साथ Python2 और Python3 के लिए virtualenv बनाने की कोशिश की ।

यहाँ मैं का इस्तेमाल किया है venv2 और venv3 के लिए उनके नाम के रूप में को Python2 और python3 क्रमशः।

पायथन 2 »

MacBook-Pro-2:~ admin$ virtualenv venv2 --python=`which python2`
Running virtualenv with interpreter /usr/local/bin/python2
New python executable in /Users/admin/venv2/bin/python
Installing setuptools, pip, wheel...done.
MacBook-Pro-2:~ admin$ 
MacBook-Pro-2:~ admin$ ls venv2/bin/
activate        easy_install        pip2.7          python2.7
activate.csh        easy_install-2.7    python          wheel
activate.fish       pip         python-config
activate_this.py    pip2            python2
MacBook-Pro-2:~ admin$ 

पायथन 3 »

MacBook-Pro-2:~ admin$ virtualenv venv3 --python=`which python3`
Running virtualenv with interpreter /usr/local/bin/python3
Using base prefix '/Library/Frameworks/Python.framework/Versions/3.6'
New python executable in /Users/admin/venv3/bin/python3
Also creating executable in /Users/admin/venv3/bin/python
Installing setuptools, pip, wheel...done.
MacBook-Pro-2:~ admin$ 
MacBook-Pro-2:~ admin$ ls venv3/bin/
activate        easy_install        pip3.6          python3.6
activate.csh        easy_install-3.6    python          wheel
activate.fish       pip         python-config
activate_this.py    pip3            python3
MacBook-Pro-2:~ admin$ 

पायथन स्थापना स्थानों की जाँच करना

MacBook-Pro-2:~ admin$ which python2
/usr/local/bin/python2
MacBook-Pro-2:~ admin$ 
MacBook-Pro-2:~ admin$ which python3
/usr/local/bin/python3
MacBook-Pro-2:~ admin$ 


2

मैं अपने अजगर संस्करण का प्रबंधन करने के लिए pyenv का उपयोग करता हूं

pyenv install 3.7.3
pyenv local 3.7.3

अपने अजगर संस्करण की जाँच करें:

$ python --version
Python 3.7.3

Venv के साथ आभासी वातावरण बनाएँ :

python -m venv .

फिर वर्चुअल वातावरण सक्रिय करें:

source bin/activate

अपने अजगर संस्करण की जाँच करें:

$ python --version
Python 3.7.3

आपको पिछले वर्चुअल वातावरण को निकालने की आवश्यकता हो सकती है

rm -rf bin

2

ये विंडोज के लिए थोड़ा अधूरा लगता है। यदि आप 3.3 या बाद के विंडोज पर चल रहे हैं, तो आप इसे pyअधिक आसानी से करने के लिए अजगर लॉन्चर का उपयोग कर सकते हैं। बस अलग अजगर संस्करण स्थापित करें, फिर चलाएं:

py -[my version] -m venv env

यह envअजगर का उपयोग करके आपकी वर्तमान निर्देशिका में वर्चुअल वातावरण बनाएगा [my version]। उदहारण के लिए:

py -3.7 -m venv env
./env/Scripts/activate

यह envpython3.7 नामक एक आभासी वातावरण बनाता है और इसे सक्रिय करता है। कोई रास्ता या अन्य जटिल सामान की आवश्यकता नहीं है।


क्या py -3.7 -m venv envइसके बजाय नहीं होना चाहिए ( -mगायब है)?
सिनोरोक

हाँ, पोस्ट में तय!।
कोल स्मिथ


1

2019 में डेबियन (डेबियन 9) सिस्टम के लिए, मैंने एक सरल समाधान खोजा जो आभासी वातावरण के भीतर से समस्या को हल कर सकता है।

मान लें कि वर्चुअल वातावरण के माध्यम से बनाया गया था:

python3.7 -m venv myenv

लेकिन केवल python2और के संस्करण हैं python2.7, और आपको python3.7 की हालिया सुविधाओं की आवश्यकता है।

फिर, बस कमांड चला रहे हैं:

(myvenv) $ python3.7 -m venv --upgrade /home/username/path/to/myvenv/

python3.7 संकुल जोड़ देगा यदि वे आपके सिस्टम पर पहले से उपलब्ध हैं।


1

यह virtualenv के साथ एक बग था। बस अपने पाइप को अपग्रेड करना फिक्स होना चाहिए।

pip install --upgrade virtualenv


1

जैसा कि पहले से ही कई उत्तरों में बताया गया है, virtualenv का उपयोग करना एक साफ समाधान है। हालांकि, एक छोटा सा नुकसान जो सभी को पता होना चाहिए कि अगर अजगर के लिए एक उपनाम bash_aliases में सेट किया गया है:

python=python3.6

यह उपनाम वर्चुअल वातावरण के अंदर भी उपयोग किया जाएगा। तो इस python -Vवातावरण में वर्चुअल एनवी के अंदर चल रहा है, हमेशा इस बात की 3.6परवाह किए बिना कि पर्यावरण बनाने के लिए दुभाषिया का उपयोग क्या होगा :

virtualenv venv --python=pythonX.X

0

यह मेरे लिए अजगर पर 2 स्थापना के साथ काम किया:

  1. चरण 1: अजगर 3 संस्करण स्थापित करें।
  2. चरण 2: आभासी वातावरण के लिए एक एनवी फ़ोल्डर बनाएँ।
  3. चरण 3: c: \ Python37 \ python -m venv c: \ path \ to to env।

इस तरह मैंने अपने मौजूदा अजगर 2 इंस्टॉलेशन पर पायथन 3 वर्चुअल वातावरण बनाया।



0

हां, आपको बस अजगर के दूसरे संस्करण को स्थापित करने की आवश्यकता है, और अपने आदेश में अजगर के अपने दूसरे संस्करण के स्थान को परिभाषित करें:

virtualenv / घर / पेरोल / दस्तावेज / env -p / usr / bin / python3


0

यहाँ विजुअल स्टूडियो कोड फ़ोल्डर में वर्चुअल वातावरण
बनाने के लिए स्टेपबस्टेप दिया गया है : मैंने Powershell (एडमिनिस्ट्रेटर मोड) का उपयोग किया है: 1. मैं एक VSCode फ़ोल्डर बनाता हूं - "D: \ Code_Python_VE" जहां मैं वर्चुअल वातावरण बनाना चाहता हूं।
2. अगला मैं कमांड टाइप करें - "pip3 इंस्टॉल virtualenv"। (डी: \ Code_Python_VE> pip3 स्थापित virtualenv) 3. डी: \ Code_Python_VE> python3 -m venv project_env
4. डी: \ Code_Python_VE> project_env \ स्क्रिप्ट \ activate.bat
5. डी: \ Code_Python_VE> ls - यह एक नई सूची जाएगा निर्देशिका "project_env"।
6. D: \ Code_Python_VE> कोड। यह विजुअल स्टूडियो कोड शुरू करेगा। सुनिश्चित करें कि कमांड (कोड) है।
7. निम्नलिखित सामग्री के साथ लॉन्च.जॉन बनाएं:

{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "type": "python",
            "request": "launch",
            "name": "Python: Current File (Integrated Terminal 1)",
            "program": "${file}"
        },
        {
            "name": "Python: Current File (Integrated Terminal 2)",
            "type": "python",
            "request": "launch",
            "program": "${file}",
            "console": "integratedTerminal"
        }
    ]
}

(कृपया खोज करें कि डिबग विंडो में कैसे जाएं और वीएस कोड में नया कॉन्फ़िगरेशन जोड़ें)।

  1. विज़ुअल स्टूडियो कोड में एफ 1 दबाएं और कमांड पैलेट खुलेगा - पायथन इंटरप्रेटर का चयन करें और वर्चुअल एनवायरनमेंट प्रोजेक्ट_नव का चयन करें।
  2. एक स्टेटमेंट प्रिंट ("हैलो वर्ल्ड") के साथ test.py फ़ाइल जोड़ें।
  3. इस कार्यक्रम को चलाएं।
  4. विज़ुअल स्टूडियो कोड टर्मिनल में -
    (project_env) d: \ Code_Python_VE> python -m pip install --upgrad
    मुझे आशा है कि यह मदद करता है।

-2

UBUNTU 19.04 / ग्लोबल पायथन 3.7।

इसने मेरे लिए काम किया, अजगर 3 विकास के लिए अनुशंसित वीनव का उपयोग करके पायथन 3.8 पर्यावरण को सक्षम किया।

3.8 और 3.8 वेव मॉड्यूल स्थापित करें

$ sudo apt स्थापित python3.8 python3.8-venv ## प्लस आपके द्वारा आवश्यक किसी भी अन्य मॉड्यूल

उस env में इच्छित अजगर संस्करण का उपयोग करके अपना वर्चुअल Env बनाएं

$ /usr/bin/python3.8 -m venv python38-env

अपने वर्चुअल एनवी में स्विच करें

$ स्रोत python38-env / bin / सक्रिय करें

python -V = पायथन 3.8

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