Rumah > Tutorial sistem > LINUX > Tutorial persediaan persekitaran Python menggunakan virtualenv

Tutorial persediaan persekitaran Python menggunakan virtualenv

WBOY
Lepaskan: 2024-01-03 19:50:01
ke hadapan
1014 orang telah melayarinya

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
Salin selepas log masuk

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$
Salin selepas log masuk

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.
Salin selepas log masuk

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$
Salin selepas log masuk

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
...
Salin selepas log masuk

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$
Salin selepas log masuk

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.

Ringkasan

Virtualenv 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!

sumber:linuxprobe.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan