Apabila membangunkan aplikasi Python, hanya terdapat satu versi Python3 yang dipasang pada sistem: 3.4. Semua pakej pihak ketiga akan dipasang oleh pip ke dalam direktori pakej tapak Python3.
Jika kita ingin membangunkan berbilang aplikasi pada masa yang sama, maka aplikasi ini akan berkongsi Python yang sama, iaitu Python 3 yang dipasang pada sistem. Bagaimana jika aplikasi A memerlukan jinja 2.7, dan aplikasi B memerlukan jinja 2.6?
Dalam kes ini, setiap aplikasi mungkin perlu mempunyai persekitaran berjalan Python "bebas" sendiri. virtualenv digunakan untuk mencipta persekitaran berjalan Python "terpencil" untuk aplikasi.
Pertama, kami memasang virtualenv menggunakan pip:
$ pip3 install virtualenv
Kemudian, dengan mengandaikan kami ingin membangunkan projek baharu dan memerlukan persekitaran berjalan Python bebas, kami boleh melakukan ini:
Langkah pertama ialah membuat direktori:
Mac:~ michael$ mkdir myproject Mac:~ michael$ cd myproject/ Mac:myproject michael$
Langkah kedua ialah mencipta persekitaran berjalan Python bebas dan namakannya venv:
Mac:myproject michael$ virtualenv --no-site-packages venv Using base prefix '/usr/local/.../Python.framework/Versions/3.4' New python executable in venv/bin/python3.4 Also creating executable in venv/bin/python Installing setuptools, pip, wheel...done.
Arahan virtualenv boleh mencipta persekitaran berjalan Python bebas Kami juga menambah parameter --no-site-packages, supaya semua pakej pihak ketiga yang telah dipasang dalam persekitaran Python sistem tidak akan disalin. , Dengan cara ini, kami mendapat persekitaran berjalan Python yang "bersih" tanpa sebarang pakej pihak ketiga.
Persekitaran Python yang baru dibuat diletakkan dalam direktori venv di bawah direktori semasa. Dengan persekitaran Python venv, anda boleh menggunakan sumber untuk memasuki persekitaran:
Mac:myproject michael$ source venv/bin/activate (venv)Mac:myproject michael$
Perhatikan bahawa gesaan arahan telah berubah Terdapat awalan (venv), menunjukkan bahawa persekitaran semasa ialah persekitaran Python bernama venv.
Pasang pelbagai pakej pihak ketiga seperti biasa dan jalankan arahan python:
(venv)Mac:myproject michael$ pip install jinja2 ... Successfully installed jinja2-2.7.3 markupsafe-0.23 (venv)Mac:myproject michael$ python myapp.py ...
Dalam persekitaran venv, pakej yang dipasang dengan pip dipasang dalam persekitaran venv, dan persekitaran sistem Python tidak terjejas dalam apa jua cara. Dalam erti kata lain, persekitaran venv dicipta khas untuk aplikasi myproject.
Untuk keluar dari persekitaran venv semasa, gunakan arahan nyahaktifkan:
(venv)Mac:myproject michael$ deactivate Mac:myproject michael$
Pada ketika ini, anda telah kembali ke persekitaran biasa Kini pip atau python dilaksanakan dalam persekitaran sistem Python.
Adalah mustahil untuk mencipta persekitaran berjalan Python bebas untuk setiap aplikasi, supaya persekitaran Python bagi setiap aplikasi boleh diasingkan.
Bagaimanakah virtualenv mencipta persekitaran berjalan Python "bebas"? Prinsipnya sangat mudah, iaitu, salin sistem Python ke persekitaran virtualenv, dan gunakan arahan sumber venv/bin/activate untuk memasuki persekitaran virtualenv Virtualenv akan mengubah suai pembolehubah persekitaran yang berkaitan supaya perintah python dan pip menunjuk kepada persekitaran virtualenv semasa.
RingkasanVirtualenv menyediakan persekitaran berjalan Python terpencil untuk aplikasi dan menyelesaikan masalah konflik berbilang versi antara aplikasi yang berbeza.
Atas ialah kandungan terperinci Tutorial persediaan persekitaran Python menggunakan virtualenv. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!