สร้างสภาพแวดล้อมเสมือน Python 3


13

ผมติดตั้งpython3-virtualenvบน Lubuntu 15.1 apt-get install python3-virtualenvใช้แพคเกจ เอกสารอย่างเป็นทางการแสดงให้เห็นว่าการที่ง่ายvirtualenv .ในไดเรกทอรีโครงการของฉันควรจะเพียงพอที่จะสร้าง venv ไม่ทำอะไรเลยเพราะwhich virtualenvไม่ทำอะไรเลย (ไม่มีอะไรจากwhich python-virtualenvและwhich python3-virtualenvยัง)

ข้อมูลแพคเกจติดตั้งครั้งเดียวบอกว่ามันติดตั้ง/usr/lib/python3/dist-packages/virtualenv.pyดังนั้นฉันจึงเรียกสิ่งนี้ภายใต้ python3 มันให้ฉันนี้:

$ python3 /usr/lib/python3/dist-packages/virtualenv.py .
Running virtualenv with interpreter /usr/bin/python2
New python executable in ./bin/python2
Also creating executable in ./bin/python
Installing setuptools, pip...done.

ใช่เมื่อฉันดูทุกอย่างใน. / bin คือ python2 python3-virtualenv ของ ubuntu เป็นแพ็คเกจจำลองสำหรับ python2 หรือไม่?

เอกสารหลามอย่างเป็นทางการกล่าวว่าใช้แพคเกจที่แตกต่างกัน: python3-venv ดูเหมือนว่าจะทำงานเมื่อฉันpyvenv .กับสิ่ง python3 ใน./binไดเรกทอรี

ฉันจะสร้าง virtualenv Python สำเร็จได้อย่างไร


แพทช์ที่เปลี่ยนพฤติกรรมนี้ใน Debian salsa.debian.org/python-team/modules/python-virtualenv/blob/…ฉันหวังว่าฉันเข้าใจกระบวนการคิดที่ใช้เมื่อมีการเพิ่มแพตช์นี้
Winny

คำตอบ:


24

venvเป็นสคริปต์อำนวยความสะดวกในการสร้าง Envs เสมือน แต่ไม่เต็มแทนที่ทุกอย่างที่virtualenvสามารถทำได้ ใช้อย่างใดอย่างหนึ่งเป็นเรื่องปกติสำหรับกรณีส่วนใหญ่ virtualenvไม่ล้าสมัย

python3 -m venvทำงานได้หลังจากติดตั้งpython3-venvเนื่องจาก Debian ดึงบางสคริปต์ออกจากแพ็คเกจ Python พื้นฐาน python3-virtualenvไม่ได้วางvirtualenvสคริปต์บนเส้นทางของคุณด้วยเหตุผลบางอย่าง แต่python-virtualenvทำได้และจะทำงานได้ดีสำหรับทั้งสองเวอร์ชัน

ไม่สำคัญว่าvirtualenvต้องติดตั้งเวอร์ชันใดสามารถสร้าง env สำหรับเวอร์ชันที่ติดตั้งใด ๆ ได้โดยผ่าน-p pythonX(โดยที่ X คือรุ่น) venvจะง่ายขึ้นมากขึ้นจะสร้าง envs ของรุ่นที่เรียกใช้และใช้ได้ตั้งแต่ 3.3 เท่านั้น

$ sudo apt-get install python-virtualenv
$ virtualenv -p python3 env
$ source ./env/bin/activate
$ sudo apt-get install python3-venv
$ python3 -m venv env
$ source ./env/bin/activate
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.