pyvenv बनाम venv बनाम python-virtualenv बनाम virtualenv और python 3


13
malikarumi@Tetouan2:~$ pip install virtualenv
    Collecting virtualenv
    Downloading virtualenv-12.0.7-py2.py3-none-any.whl (1.8MB)
    100% |################################| 1.8MB 330kB/s 

malikarumi@Tetouan2:~$ pip freeze
    (a lot of stuff, but not virtualenv)

malikarumi@Tetouan2:~$ virtualenv testvenv1
    The program 'virtualenv' is currently not installed. You can install it by typing:
    sudo apt-get install python-virtualenv

यहाँ क्या हो रहा है? python-virtualenv == पाइवेनव है? अभी भी टूटा नहीं है? क्या मूल वर्चुअन अभी भी अजगर के साथ काम करता है? अगर venv (बहुत अधिक नाम विविधताएँ !!!) मानक पुस्तकालय का हिस्सा है, https://docs.python.org/3/library/venv.html , मुझे इसे स्थापित करने के लिए क्यों कहा जा रहा है?

और जब मैंने इसे स्थापित करने की कोशिश की, मुझे मिल गया:

malikarumi@Tetouan2:~$ sudo apt-get install python-virtualenv
    Reading package lists... Done
    Building dependency tree       
    Reading state information... Done
    The following extra packages will be installed:
    python-colorama python-distlib python-html5lib python-pip python-setuptools

जिस बिंदु पर मैंने गर्भपात किया, क्योंकि इससे पहले कि मुझे दिया था, अजगर-पाइप स्थापित करना

Setting up python3-setuptools (3.3-1ubuntu1) ...
Setting up python3-pip (1.5.4-1) ...

और मुझे यकीन नहीं था कि अगर अतिरिक्त पैकेज उन्हें अधिलेखित कर देंगे या अजगर 2.7 पर चले जाएंगे।

मैंने पढ़ा है कि अजगर 3 को आगे बढ़ने वाला डिफ़ॉल्ट माना जाता है। चूँकि २., और ३.४ दोनों हैं, और अलग-अलग कमांड हैं, मैं न केवल यह सुनिश्चित करता हूं कि पायथन ३ मेरा डिफ़ॉल्ट है, लेकिन मैं जो कुछ भी स्थापित करता हूं वह वहां जाता है और २. 2.7 के बजाय इसका उपयोग किया जाता है?

BTW, मैंने sudo apt-get python3-virtualenv की कोशिश की और मिला: E: पैकेज python3-virtualenv का पता लगाने में असमर्थ


1
मैं अब भी जानना चाहूंगा कि क्या अंतर है - यदि कोई है - इन सभी के बीच है, लेकिन इसी तरह का नाम आभासी पर्यावरण पैकेज है।
मलिक ए। रूमी

मैं 14.04 का उपयोग कर रहा हूं, इसलिए इस जवाब से मुझे मदद मिली।
दोस्त एफएक्स

जवाबों:


4

पायथन 3.x पैकेज को पायथन वर्चुअल वातावरण में स्थापित करने का तरीका पायथन 3 आभासी पर्यावरण निर्माता ( python3-virtualenv ) का उपयोग करके पायथन वर्चुअल वातावरण बनाना है । python3-virtualenv Ubuntu 14.10 और बाद में डिफ़ॉल्ट Ubuntu रिपॉजिटरी में है।

16.04 और बाद में पायथन वर्चुअल वातावरण में पायथन 3.x पैकेज स्थापित करें

  1. पायथन 3 आभासी पर्यावरण निर्माता स्थापित करें

    sudo apt install virtualenv python3-virtualenv
  2. अजगर 3 के लिए एक पायथन वर्चुअल वातावरण बनाएं। आप केवल पायथन वर्चुअल वातावरण के अंदर python3 संकुल स्थापित कर सकते हैं। यदि आप भी पायथन 2.x पैकेज स्थापित करना चाहते हैं, तो आपको एक और पायथन वर्चुअल वातावरण बनाने की आवश्यकता है।

    virtualenv -p python3 env  
    source ./env/bin/activate
    

    Python3 के लिए नया पायथन वर्चुअल वातावरण उस envनिर्देशिका में बनाया जाएगा जो वर्तमान निर्देशिका में स्थित है।

  3. पायथन पैकेज स्थापित करें।

    cd / path / to / env / # env python3 वर्चुअल वातावरण की निर्देशिका है
    source बिन / सक्रिय
    pip3 प्रथम पैकेज-नाम अगला-पैकेज-नाम अंतिम-पैकेज-नाम स्थापित करें

यह एक नया python3 वर्चुअल वातावरण है, जिसमें pip3 का नवीनतम संस्करण है, इसलिए इसमें पायथन पैकेज स्थापित करना बहुत अच्छा काम करेगा।


Ubuntu 14.04 में पायथन वर्चुअल वातावरण में पायथन 3.x पैकेज स्थापित करें

sudo apt-get install virtualenvwrapper  
gedit .bashrc

.Bashrc के अंत में निम्न पंक्ति जोड़ें।

source /usr/share/virtualenvwrapper/virtualenvwrapper.sh

परिवर्तनों को सहेजें .bashrc और gedit को बंद करें। परिवर्तनों को प्रभावी करने के लिए अपने .bashrc स्रोत।

cd 
source .bashrc

अजगर 3 के लिए एक पायथन वर्चुअल वातावरण बनाएं। आप केवल पायथन वर्चुअल वातावरण के अंदर python3 संकुल स्थापित कर सकते हैं। यदि आप भी पायथन 2.x पैकेज स्थापित करना चाहते हैं, तो आपको एक और पायथन वर्चुअल वातावरण बनाने की आवश्यकता है।

mkvirtualenv py3 -p /usr/bin/python3

Python3 के लिए नया पायथन वर्चुअल वातावरण ~/.virtualenvs/py3डायरेक्टरी में बनाया जाएगा । .virtualenvsएक छिपा हुआ फ़ोल्डर है।

एक पैकेज स्थापित करें।

cd ~ / .virtualenvs / py3
source बिन / सक्रिय
pip3 पैकेज-नाम स्थापित करें

4
यह सही प्रतीत नहीं होता है। विशद (15.04) के पास python3-virtualenvऔर python3-venvपैकेज उपलब्ध हैं। मैं मान रहा हूं कि python3-venvसही पैकेज है, इस मामले में मुझे नहीं पता कि उद्देश्य क्या python3-virtualenvहै।
Knite

गलत। आप virtualenvPyPy सहित मनमानी दुभाषिया के साथ वातावरण बनाने के लिए (निष्पादन योग्य) का उपयोग कर सकते हैं , बस ठीक Eg virtualenv -p python3 newenv
साज

0

खैर, यह जटिल हो जाता है। निम्नलिखित Ubuntu Xenial (जो लिनक्स टकसाल मैं उपयोग के लिए अंतर्निहित रिलीज है) के खिलाफ दिखाया गया है। चलो इसे सुलझाते हैं:

pyvenv

यह Python 3.3+ stdlib पैकेज की रैपर स्क्रिप्ट को संदर्भित करता है । लेकिन इसे पायथन 3.6 से हटा दिया गया था।

यह एक PyPi पैकेज भी है , जो एक आभासी पर्यावरण स्विचर है।

venv

यह Python 3.3+ stdlib पैकेज है जिसका उद्देश्य PyPi virtualenv पैकेज को सुधारना और बदलना था ( PEP 405 देखें )। लेकिन ऐसा लगता है कि यह अभी तक नहीं है (कम से कम फीचर-पूर्ण नहीं है)।

अजगर- virtualenv और virtualenv

$ apt-cache show virtualenv | grep Depends
Depends: python3, python3-virtualenv

जैसा कि आप देख सकते हैं कि यह पाइथन 3 पर चलता है। python-virtualenvपैकेज का उपयोग करने के लिए किया जाता है python2 -m virtualenv py2। आइए देखें कि कैसे virtualenvउबंटू ज़ेनियल ( docker run --rm -it ubuntu:xenial) पर काम करता है :

$ virtualenv
bash: virtualenv: command not found
$ apt-get update
...
$ apt-get install --yes --no-install-recommends virtualenv
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  ca-certificates dh-python libexpat1 libmpdec2 libpython3-stdlib
  libpython3.5-minimal libpython3.5-stdlib libsqlite3-0 libssl1.0.0
  mime-support openssl python-pip-whl python3 python3-minimal
  python3-pkg-resources python3-virtualenv python3.5 python3.5-minimal
Suggested packages:
  libdpkg-perl python3-doc python3-tk python3-venv python3-setuptools
  python3.5-venv python3.5-doc binutils binfmt-support
Recommended packages:
  file
The following NEW packages will be installed:
  ca-certificates dh-python libexpat1 libmpdec2 libpython3-stdlib
  libpython3.5-minimal libpython3.5-stdlib libsqlite3-0 libssl1.0.0
  mime-support openssl python-pip-whl python3 python3-minimal
  python3-pkg-resources python3-virtualenv python3.5 python3.5-minimal
  virtualenv
...
$ virtualenv test
The executable python2 (from --python=python2) does not exist
$ virtualenv -p python3 py3 
Already using interpreter /usr/bin/python3
Using base prefix '/usr'
New python executable in /py3/bin/python3
Also creating executable in /py3/bin/python
Installing setuptools, pkg_resources, pip, wheel...done.
$ . py3/bin/activate
(py3) $ python --version
Python 3.5.2
(py3) $ deactivate
$ apt-get install --yes --no-install-recommends python    
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  libffi6 libpython-stdlib libpython2.7-minimal libpython2.7-stdlib
  python-minimal python2.7 python2.7-minimal
Suggested packages:
  python-doc python-tk python2.7-doc binutils binfmt-support
The following NEW packages will be installed:
  libffi6 libpython-stdlib libpython2.7-minimal libpython2.7-stdlib python
  python-minimal python2.7 python2.7-minimal
...
$ virtualenv py2 
Running virtualenv with interpreter /usr/bin/python2
New python executable in /py2/bin/python2
Also creating executable in /py2/bin/python
Installing setuptools, pkg_resources, pip, wheel...done.
$ . py2/bin/activate
(py2) $ python --version
Python 2.7.12

जैसा कि आप देख सकते हैं कि virtualenvपैकेज उपयोग कर रहा है python3-virtualenv, इसका डिफ़ॉल्ट पायथन 2 वातावरण बनाना है।


मैंने अपनी मशीन पर भी वही चीज देखी है जो उस समय 14.04 Ubuntu पर चल रही थी। - "जैसा कि आप देख सकते हैं कि भले ही virtualenv पैकेज python3-virtualenv का उपयोग कर रहा है, लेकिन इसका डिफ़ॉल्ट पायथन 2 वातावरण बनाना है।"
केरेल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.