อัพเกรด python ใน virtualenv


206

มีวิธีในการอัพเกรดเวอร์ชั่นของไพ ธ อนที่ใช้ใน virtualenv หรือไม่ (เช่นถ้ามีการปล่อยบั๊กออกมา)?

ฉันทำได้pip freeze --local > requirements.txtแล้วลบไดเรกทอรีและpip install -r requirements.txtแต่ต้องมีการติดตั้งไลบรารีขนาดใหญ่จำนวนมากตัวอย่างเช่นnumpyซึ่งฉันใช้บ่อย

ฉันเห็นว่านี่เป็นข้อได้เปรียบเมื่ออัปเกรดจากเช่น 2.6 -> 2.7 แต่จะเป็นอย่างไรเมื่อ 2.7.x -> 2.7.y


2
ในขณะที่คุณอาจจะสามารถปรับเปลี่ยนเส้นทางบางอย่าง ฯลฯ เพื่อให้ใช้งานได้ สิ่งสุดท้ายที่คุณต้องการคือสภาพแวดล้อมที่แตกต่างกันเล็กน้อยจากการผลิต ลองคิดดูสิ .. ถ้ามีความแตกต่างเพียงอย่างเดียวระหว่างวิธีการรวบรวมเวอร์ชั่นต่าง ๆ คุณจะหลุดพ้นจากการบันทึกตลอดเวลาโดยการติดตามจุดบกพร่อง ฉันแค่ใช้เวลาในการสร้าง virtualenv ใหม่และติดตั้งใหม่ทุกอย่าง
Sam Dolan

@Simon Walker ปัญหาเดียวกันแน่นอน ฉันต้องอัพเกรด python 3.5.3 เพื่อแก้ไขข้อผิดพลาด
Mohammed Shareef C

คำตอบ:


77

คุณเห็นสิ่งนี้ไหม หากฉันไม่ได้เข้าใจผิดคำตอบนั้นคุณอาจลองสร้าง virtualenv ใหม่ที่อยู่ด้านบนของเดิม คุณเพียงแค่ต้องรู้ว่าไพ ธ อนตัวใดที่จะใช้ virtualenv ของคุณ (คุณจะต้องเห็นเวอร์ชัน virtualenv ของคุณ)

หาก virtualenv ของคุณถูกติดตั้งด้วย python เวอร์ชั่นเก่าและอัพเกรดแพ็คเกจ virtualenv ของคุณไม่ใช่ตัวเลือกคุณอาจต้องการอ่านสิ่งนี้เพื่อติดตั้ง virtualenv ด้วย python เวอร์ชั่นที่คุณต้องการ

แก้ไข

ฉันได้ทดสอบวิธีการนี้ (อันที่สร้าง virtualenv ใหม่ที่ด้านบนของอันเก่า) และมันก็ใช้ได้ดีสำหรับฉัน ฉันคิดว่าคุณอาจมีปัญหาบางอย่างหากคุณเปลี่ยนจาก python 2.6 เป็น 2.7 หรือ 2.7 เป็น 3.x แต่ถ้าคุณเพิ่งอัพเกรดในรุ่นเดียวกัน (อยู่ที่ 2.7 ตามที่คุณต้องการ) คุณไม่ควรมีปัญหาใด ๆ เช่นแพ็คเกจทั้งหมด จะถูกเก็บไว้ในโฟลเดอร์เดียวกันสำหรับทั้งงูใหญ่รุ่น (2.7.x และ 2.7.y แพ็คเกจอยู่ใน your_env / lib / python2.7 /)

หากคุณเปลี่ยนเวอร์ชั่น virtualenv python ของคุณคุณจะต้องติดตั้งแพ็กเกจทั้งหมดของคุณอีกครั้งสำหรับเวอร์ชันนั้น (หรือเพียงเชื่อมโยงแพ็คเกจที่คุณต้องการไปยังโฟลเดอร์แพ็คเกจแพ็คเกจเวอร์ชันใหม่เช่น: your_env / lib / python_newversion / site-packages)


13
เขาไม่ต้องการติดตั้งแพ็กเกจใด ๆ โดยเฉพาะหากทำได้ เห็นได้ชัดว่าคุณไม่เคยติดตั้ง numpy จากแหล่งที่มาหากคุณไม่ทราบว่าทำไมมันถึงสำคัญ;) คำแนะนำ: ใช้เวลา LOOOOOOOOOOOOOOOONG
Antti Haapala

ใช่ฉันเข้าใจว่า แต่ดูเหมือนว่าถ้าเขาสร้าง virtualenv ไว้ด้านบนแพคเกจจะไม่สูญหายดังนั้นเขาจะไม่ต้องติดตั้งใหม่หรือแพคเกจอื่น ๆ อย่างไรก็ตามฉันคิดว่าเขาควรลองสิ่งนี้ใน virtualenv ใหม่ในกรณีที่มันล้มเหลว
marianobianchi

ฉันพักกรณีของฉันฉันเชื่อว่า virtualenv รุ่นใหม่มีการอัพเกรดในสถานที่จริง ๆ แต่สำหรับรุ่นเก่าพวกเขาไม่ได้เขียนทับ python ที่สามารถใช้งานได้ซึ่งทำให้เกิดปัญหากับการปล่อยบั๊กอย่างน้อยหนึ่งตัว
Antti Haapala

4
มันไม่ได้ผลสำหรับฉันและดูเหมือนว่าไม่ควรจะ: github.com/pypa/virtualenv/issues/437
Kentzo

1
ฉันพยายามสร้างใหม่virtualenvที่ด้านบนของเก่าและมันก็ใช้งานได้ ฉันต้องระบุ-pให้ชี้ไปที่เวอร์ชันที่ถูกต้องของไพ ธ อน
osa

76

หากคุณกำลังใช้โมดูล venv ที่มาพร้อมกับ Python 3.3+ จะสนับสนุน--upgradeตัวเลือก ต่อเอกสาร :

อัพเกรดไดเร็กทอรีสภาพแวดล้อมเพื่อใช้ Python เวอร์ชันนี้โดยสมมติว่า Python ได้รับการอัพเกรดแบบแทนที่

python3 -m venv --upgrade ENV_DIR

1
น่าเสียดายที่นี่ใช้งานไม่ได้กับ Ubuntu 16.04 ที่พวกมันพังvenvและปฏิเสธที่จะแก้ไขบนพื้นฐานที่ว่า "คุณสามารถใช้ virtualenv" ได้ แก้ไข: จริงมันใช้งานได้! นอกจากนี้ยังแสดงข้อความแสดงข้อผิดพลาดเกี่ยวกับ "surepip"
rspeer

2
ฉันอัพเกรดหลามจาก 3.5.1 เป็น 3.6.4 ในระบบของฉัน และเพื่ออัพเกรด python บน virtualenv ของฉันฉันต้องพูดถึง python3.6 อย่างชัดเจนในคำสั่ง:python3.6 -m venv --upgrade <path_of_existing_env>
Sarfraaz Ahmed

1
ในกรณีของฉันbin/pythonและbin/python3ยังเชื่อมโยงกับpython3.4ไบนารีเก่าและฉันต้องตั้งค่าลิงก์ด้วยตนเอง นอกจากนี้ยังมีวิธีลบเวอร์ชันหลามที่ล้าสมัยในตอนนี้หรือไม่?
Jens

4
ฉันได้Error: Command '['/Users/me/Sites/site/venv3/bin/python3', '-Im', 'ensurepip', '--upgrade', '--default-pip']' returned non-zero exit status 1.> มันหมายความว่าอะไร? ฉันไม่เห็นกระบวนการของหลามที่ใช้งานอยู่ไม่สามารถอัพเกรดได้
user305883

1
@ user305883 ฉันมีข้อผิดพลาดคล้ายกันหลังจากฉันอัพเกรดระบบ Python ของฉันจาก 3.5 เป็น 3.6 (และลบออก 3.5) ฉันต้องติดตั้ง 3.5 และใช้python3.6 -m venv --upgrade ENV_DIRงานได้ ENV_DIR/binฉันคิดว่าฉันจะยังคงมีการปรับปรุงการเชื่อมโยงสัญลักษณ์บางอย่างใน ดังนั้นเคล็ดลับคือการอัปเดตกับใหม่รุ่นหลามในขณะที่รุ่นเก่ายังคงได้รับการติดตั้ง
AstroFloyd

24

อัปเดตอีกครั้ง: วิธีการต่อไปนี้อาจไม่ทำงานใน virtualenv รุ่นใหม่กว่า ก่อนที่คุณจะทำการปรับเปลี่ยน virtualenv เก่าคุณควรบันทึกการอ้างอิงในไฟล์ข้อกำหนด (pip freeze > requirements.txt) และทำการสำรองข้อมูลจากที่อื่น หากมีสิ่งใดผิดพลาดคุณยังคงสามารถสร้าง virtualenv ใหม่และติดตั้งการอ้างอิงเดิมใน (pip install -r requirements.txt)

อัปเดต:ฉันเปลี่ยนคำตอบ 5 เดือนหลังจากที่ฉันตอบ วิธีการต่อไปนี้สะดวกและแข็งแกร่งยิ่งขึ้น

ผลข้างเคียง:นอกจากนี้ยังแก้ไขSymbol not found: _SSLv2_methodข้อยกเว้นเมื่อคุณทำimport sslในสภาพแวดล้อมเสมือนหลังจากอัพเกรด Python เป็น v2.7.8

หมายเหตุ:ปัจจุบันนี้เป็นงูหลาม 2.7.x เท่านั้น


หากคุณใช้ Homebrew Python บน OS X อันดับแรกdeactivateให้ virtualenv ทั้งหมดจากนั้นอัพเกรด Python:

brew update && brew upgrade python

รันคำสั่งต่อไปนี้ ( <EXISTING_ENV_PATH>เป็นพา ธ ของสภาพแวดล้อมเสมือนของคุณ):

cd <EXISTING_ENV_PATH>
rm .Python
rm bin/pip{,2,2.7}
rm bin/python{,2,2.7}
rm -r include/python2.7
rm lib/python2.7/*
rm -r lib/python2.7/distutils
rm lib/python2.7/site-packages/easy_install.*
rm -r lib/python2.7/site-packages/pip
rm -r lib/python2.7/site-packages/pip-*.dist-info
rm -r lib/python2.7/site-packages/setuptools
rm -r lib/python2.7/site-packages/setuptools-*.dist-info

ในที่สุดสร้างสภาพแวดล้อมเสมือนจริงของคุณ:

virtualenv <EXISTING_ENV_PATH>

ด้วยการทำเช่นนั้นไฟล์หลักของ Python เก่าและไลบรารี่มาตรฐาน (บวก) setuptoolsและpip) จะถูกลบออกในขณะที่site-packagesไลบรารี่แบบกำหนดเองที่ติดตั้งในนั้นจะได้รับการเก็บรักษาและใช้งานได้ทันทีที่อยู่ใน Python บริสุทธิ์ ไลบรารีไบนารีอาจหรืออาจไม่จำเป็นต้องติดตั้งใหม่เพื่อให้ทำงานได้อย่างถูกต้อง

สิ่งนี้ใช้ได้กับฉันใน 5 สภาพแวดล้อมเสมือนจริงที่ติดตั้ง Django

BTW หาก./manage.py compilemessagesไม่ทำงานหลังจากนั้นให้ลองทำดังนี้:

brew install gettext && brew link gettext --force

ไฟล์เดียวที่ฉันต้องลบคือbin/pythonไฟล์
โคเอ็น

สำหรับ Python เวอร์ชันเก่าให้ลบsetuptoolsและpipจำเป็น
Rockallite

1
ฉันยังต้องลบ<EXISTING_ENV_PATH>/.Pythonตามที่ทำลายการสร้าง virtualenv
Kiran Jonnalagadda

2
ตามคำตอบนี้ฉันเขียนสคริปต์เล็กน้อย (พร้อมการระบุแหล่งที่มาเต็มรูปแบบ): burgundywall.com/post/update-all-python-virtual-environment
Kurt

คุณสามารถลบสภาพแวดล้อมเสมือนจริงของคุณได้อย่างง่ายดายด้วยการเรียกใช้rmvirtualenv <env_name>และจะลบการอ้างอิงที่มีอยู่ทั้งหมด :) ดูเพิ่มเติมได้ที่: virtualenvwrapper.readthedocs.io/en/latest/…
Nick Lucas

7

ฉันไม่สามารถสร้าง virtualenv ใหม่ที่ด้านบนของอันเก่าได้ แต่มีเครื่องมือใน pip ที่ทำให้เร็วขึ้นมากในการติดตั้งความต้องการลงใน venv ใหม่เอี่ยม Pip สามารถสร้างแต่ละรายการใน requirements.txt ของคุณลงในแพ็คเกจ wheel และเก็บไว้ในแคชโลคัล เมื่อคุณสร้าง venv ใหม่และเรียกใช้ pip ติดตั้งในนั้น pip จะใช้ล้อที่สร้างไว้ล่วงหน้าโดยอัตโนมัติหากพบ ล้อติดตั้งเร็วกว่าการรัน setup.py สำหรับแต่ละโมดูล

My ~ / .pip / pip.conf มีลักษณะดังนี้:

[global]
download-cache = /Users/me/.pip/download-cache
find-links =
/Users/me/.pip/wheels/

[wheel]
wheel-dir = /Users/me/.pip/wheels

ฉันจะติดตั้งล้อ ( pip install wheel) pip wheel -r requirements.txtจากนั้นเรียกใช้ สิ่งนี้จะเก็บล้อที่สร้างขึ้นในล้อ -dir ใน pip.conf ของฉัน

ตั้งแต่นั้นมาทุกครั้งที่ฉันติดตั้งข้อกำหนดเหล่านี้ก็จะติดตั้งจากล้อซึ่งค่อนข้างเร็ว


1
สำหรับคนส่วนใหญ่ฉันคิดว่าการใช้เครื่องจักร pip เพื่อทำงานนั้นสมเหตุสมผล แต่สำหรับทุกคนที่กำหนด virtualenvs postactivate, predeactivate และอื่น ๆ นี่ไม่ใช่ตัวเลือกที่ต้องการเนื่องจากสิ่งที่หายไปและต้องอ่านด้วยตนเอง
dpwrussell

6

วิธีอัปเกรดเวอร์ชัน Python สำหรับโครงการ virtualenvwrapper ที่มีอยู่และใช้ชื่อเดิม

ฉันกำลังเพิ่มคำตอบสำหรับทุกคนที่ใช้ความเป็นเลิศของ Doug Hellmann virtualenvwrapper ที่โดยเฉพาะเนื่องจากคำตอบที่มีอยู่ไม่ได้ทำเพื่อฉัน

บริบทบางอย่าง:

  • ฉันทำงานในบางโครงการที่เป็น Python 2 และบางอย่างที่เป็น Python 3 ในขณะที่ฉันชอบที่จะใช้python3 -m venvมันไม่รองรับสภาพแวดล้อม Python 2
  • เมื่อฉันเริ่มโครงการใหม่ฉันใช้ mkprojectซึ่งสร้างสภาพแวดล้อมเสมือนสร้างไดเรกทอรีโครงการที่ว่างเปล่าและซีดีลงใน
  • ฉันต้องการดำเนินการต่อโดยใช้workonคำสั่งvirtualenvwrapper เพื่อเปิดใช้งานโครงการใด ๆ โดยไม่คำนึงถึงรุ่น Python

ทิศทาง:

สมมติว่าโครงการที่มีอยู่ของคุณชื่อfooและกำลังเรียกใช้ Python 2 (mkproject -p python2 foo ) แม้ว่าคำสั่งจะเหมือนกันไม่ว่าจะเป็นการอัพเกรดจาก 2.x เป็น 3.x, 3.6.0 เป็น 3.6.1 เป็นต้นฉันก็ถือว่าคุณเป็นเช่นนั้น ในปัจจุบันภายในสภาพแวดล้อมเสมือนที่เปิดใช้งาน

1. ปิดใช้งานและลบสภาพแวดล้อมเสมือนเก่า:

$ deactivate
$ rmvirtualenv foo

โปรดทราบว่าหากคุณได้เพิ่มคำสั่งที่กำหนดเองลงใน hooks (เช่นbin/postactivate) คุณจะต้องบันทึกคำสั่งเหล่านั้นก่อนที่จะลบสภาพแวดล้อม

2. ซ่อนโครงการจริงในไดเรกทอรีชั่วคราว:

$ cd ..
$ mv foo foo-tmp

3. สร้างสภาพแวดล้อมเสมือนใหม่ (และโครงการ dir) และเปิดใช้งาน:

$ mkproject -p python3 foo

4. แทนที่โปรเจ็กต์เปล่าที่สร้างขึ้นด้วยโปรเจ็กต์จริงเปลี่ยนกลับเป็นโปรเจ็กต์ dir:

$ cd ..
$ mv -f foo-tmp foo
$ cdproject

5. ติดตั้งการอ้างอิงใหม่ยืนยันเวอร์ชัน Python ใหม่ ฯลฯ :

$ pip install -r requirements.txt
$ python --version

หากนี่เป็นกรณีการใช้งานทั่วไปฉันจะพิจารณาเปิด PR เพื่อเพิ่มบางสิ่งเช่น$ upgradevirtualenv/ $ upgradeprojectไปยัง virtualenvwrapper


1
ได้โปรด ฉันได้ครึ่งทางผ่านและได้รับปัญหาที่สำคัญ ... การตรวจสอบจะดีเพราะขั้นตอนแรกไม่สามารถย้อนกลับได้เมื่อลบออก (ความรู้ปัจจุบันของฉัน)
chris Frisina

2

วิธีนี้ใช้ได้ผลกับฉันเสมอ:

# First of all, delete all broken links. Replace  my_project_name` to your virtual env name
find ~/.virtualenvs/my_project_name/ -type l -delete
# Then create new links to the current Python version
virtualenv ~/.virtualenvs/my_project_name/
# It's it. Just repeat for each virtualenv located in ~/.virtualenvs

เอามาจาก:


1

ฉันย้ายโฮมไดเร็กตอรี่จาก mac เครื่องหนึ่งไปยังอีกเครื่องหนึ่ง (Mountain Lion ไปยัง Yosemite) และไม่ได้ตระหนักถึง virtualenv ที่เสียจนกระทั่งฉันไม่ได้ถือแล็ปท็อปเครื่องเก่า ฉันมี virtualenv point ไปที่ Python 2.7 ที่ติดตั้งโดยbrewและเนื่องจาก Yosemite มาพร้อมกับ Python 2.7 ฉันต้องการอัพเดต virtualenv ของฉันเป็น python ของระบบ เมื่อฉันรันvirtualenvบนไดเรกทอรีที่มีอยู่ฉันได้รับOSError: [Errno 17] File exists: '/Users/hdara/bin/python2.7/lib/python2.7/config'ข้อผิดพลาด จากการทดลองและข้อผิดพลาดฉันได้แก้ไขปัญหานี้โดยลบลิงก์บางส่วนออกและแก้ไขด้วยตนเองเพิ่มเติมอีกสองสามรายการ นี่คือสิ่งที่ฉันทำในที่สุด (คล้ายกับที่ @ Rockalite ทำ แต่เรียบง่ายกว่า):

cd <virtualenv-root>
rm lib/python2.7/config
rm lib/python2.7/lib-dynload
rm include/python2.7
rm .Python
cd lib/python2.7
gfind . -type l -xtype l | while read f; do ln -s -f /System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/${f#./} $f; done

หลังจากนี้ฉันก็สามารถเรียกใช้ virtualenv ที่ด้านบนของไดเรกทอรีที่มีอยู่


1

บน OS X หรือ macOS โดยใช้ Homebrew เพื่อติดตั้งและอัปเกรด Python3 ฉันต้องลบลิงก์สัญลักษณ์ก่อนpython -m venv --upgrade ENV_DIRจะใช้งานได้

ฉันบันทึกสิ่งต่อไปนี้ใน upgrade_python3.sh ดังนั้นฉันจะจำได้ว่าเมื่อไรที่ต้องทำอีกหลายเดือนนับจากนี้:

brew upgrade python3
find ~/.virtualenvs/ -type l -delete
find ~/.virtualenvs/ -type d -mindepth 1 -maxdepth 1 -exec python3 -m venv --upgrade "{}" \;

ปรับปรุง: ในขณะนี้ดูเหมือนว่าจะทำงานได้ดีในตอนแรกเมื่อฉันวิ่ง py.test มันทำให้เกิดข้อผิดพลาด ในที่สุดฉันเพิ่งสร้างสภาพแวดล้อมใหม่จากไฟล์ข้อกำหนด


py.testไม่ทำงานเพราะ `~ / .virtualenvs / myenv / bin / python3.7 ไม่ใช่ symlink ดังนั้นจึงไม่ได้รับการอัปเดต
Ash Berlin-Taylor

อันที่จริงปัญหาคือมี~/.virtualenvs/myenv/.Pythonซึ่งเป็น symlink
Ash Berlin-Taylor

1

หากคุณกำลังใช้อยู่pipenvฉันไม่รู้ว่าจะสามารถอัพเกรดสภาพแวดล้อมได้หรือไม่ แต่อย่างน้อยสำหรับการอัพเกรดรุ่นรองดูเหมือนว่าฉลาดพอที่จะไม่สร้างแพ็คเกจใหม่ตั้งแต่เริ่มต้นเมื่อสร้างสภาพแวดล้อมใหม่ เช่นจาก 3.6.4 ถึง 3.6.5:

$ pipenv --python 3.6.5 install
Virtualenv already exists!
Removing existing virtualenv
Creating a v$ pipenv --python 3.6.5 install
Virtualenv already exists!
Removing existing virtualenv
Creating a virtualenv for this project
Using /usr/local/bin/python3.6m (3.6.5) to create virtualenv
Running virtualenv with interpreter /usr/local/bin/python3.6m
Using base prefix '/usr/local/Cellar/python/3.6.5/Frameworks/Python.framework/Versions/3.6'
New python executable in /Users/dmoles/.local/share/virtualenvs/autoscale-aBUhewiD/bin/python3.6
Also creating executable in /Users/dmoles/.local/share/virtualenvs/autoscale-aBUhewiD/bin/python
Installing setuptools, pip, wheel...done.

Virtualenv location: /Users/dmoles/.local/share/virtualenvs/autoscale-aBUhewiD
Installing dependencies from Pipfile.lock (84dd0e)…
  🐍   ▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉ 47/47  00:00:24
To activate this project's virtualenv, run the following:
 $ pipenv shell
$ pipenv shell
Spawning environment shell (/bin/bash). Use 'exit' to leave.
. /Users/dmoles/.local/share/virtualenvs/autoscale-aBUhewiD/bin/activate
bash-3.2$ . /Users/dmoles/.local/share/virtualenvs/autoscale-aBUhewiD/bin/activate
(autoscale-aBUhewiD) bash-3.2$ python
Python 3.6.5 (default, Mar 30 2018, 06:41:53) 
[GCC 4.2.1 Compatible Apple LLVM 9.0.0 (clang-900.0.39.2)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy as np
>>>

! น่ากลัว ขอบคุณสำหรับอัญมณีนี้
Mayur Patil

1

ผมแค่อยากจะชี้แจงเพราะบางคำตอบอ้างถึงvenvและคนอื่น ๆ virtualenvอ้างถึง

การใช้-pหรือ--pythonธงรับการสนับสนุนบนแต่ไม่ได้อยู่ในvirtualenv venvหากคุณมีเวอร์ชัน Python มากกว่าหนึ่งรุ่นและคุณต้องการระบุเวอร์ชันที่จะสร้างvenvด้วยให้ทำบนบรรทัดคำสั่งดังนี้:

malikarumi@Tetuoan2:~/Projects$ python3.6 -m venv {path to pre-existing dir you want venv in}

แน่นอนว่าคุณสามารถอัพเกรดด้วยvenvตามที่คนอื่น ๆ ได้ชี้ให้เห็น แต่ถือว่าคุณได้อัพเกรด Python ที่ใช้ในการสร้างมันvenvขึ้นมาตั้งแต่แรก คุณไม่สามารถอัปเกรดเป็นเวอร์ชัน Python ที่คุณยังไม่มีในระบบของคุณได้ดังนั้นโปรดตรวจสอบให้แน่ใจว่าได้รับเวอร์ชันที่คุณต้องการก่อนจากนั้นจึงสร้าง venvs ทั้งหมดที่คุณต้องการจากมัน


1

ขั้นตอนที่ 1:ตรึงความต้องการ & สำรองข้อมูล env ที่มีอยู่

pip freeze > requirements.txt
deactivate
mv env env_old

ขั้นตอนที่ 2:ติดตั้ง Python 3.7 และเปิดใช้งานสภาพแวดล้อมแบบ virutal

sudo apt-get install python3.7-venv
python3.7 -m venv env
source env/bin/activate
python --version

ขั้นตอนที่ 3:ข้อกำหนดการติดตั้ง

sudo apt-get install python3.7-dev
pip3 install -r requirements.txt

0

สำหรับทุกคนที่มีปัญหา

ข้อผิดพลาด: คำสั่ง '[' / ผู้ใช้ / ฉัน / ไซต์ / ไซต์ / venv3 / bin / python3 ',' -Im ',' surepip ',' - อัปเกรด ',' --default-pip ']' ส่งคืนค่าที่ไม่ใช่ศูนย์ สถานะการออก 1

คุณต้องติดตั้ง python3.6-venv

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