ให้แน่ใจว่าปิดการใช้งานใน Debian / Ubuntu สำหรับระบบหลาม


10

ฉันกำลังพยายามสร้างสภาพแวดล้อมเสมือนจริงสำหรับการพัฒนาแอปพลิเคชัน Django ของฉัน คอมมานโดที่ฉันใช้อยู่:

vagrant@vagrant:/var/www/djangogirls$ python3 -m venv myvenv
The virtual environment was not created successfully because ensurepip is not
available.  On Debian/Ubuntu systems, you need to install the python3-venv
package using the following command.

    apt-get install python3-venv

You may need to use sudo with that command.  After installing the python3-venv
package, recreate your virtual environment.

Failing command: ['/var/www/djangogirls/myvenv/bin/python3', '-Im', 'ensurepip', '--upgrade', '--default-pip']


vagrant@vagrant:/var/www/djangogirls$ sudo apt-get install python3-venv
Reading package lists... Done
Building dependency tree       
Reading state information... Done
python3-venv is already the newest version (3.5.1-3).
The following packages were automatically installed and are no longer required:
  javascript-common libjs-jquery libjs-sphinxdoc libjs-underscore python-pbr python-pkg-resources
  python-six python-stevedore python3-virtualenv virtualenv virtualenv-clone
Use 'sudo apt autoremove' to remove them.
0 upgraded, 0 newly installed, 0 to remove and 108 not upgraded.

vagrant@vagrant:/var/www/djangogirls$ python3 -m ensurepip
ensurepip is disabled in Debian/Ubuntu for the system python.

Python modules for the system python are usually handled by dpkg and apt-get.

    apt-get install python-<module name>

Install the python-pip package to use pip itself.  Using pip together
with the system python might have unexpected results for any system installed
module, so use it on your own risk, or make sure to only use it in virtual
environments.


vagrant@vagrant:/var/www/djangogirls$ rm -r myvenv/ 

vagrant@vagrant:/var/www/djangogirls$ python3 -m venv myvenv
The virtual environment was not created successfully because ensurepip is not
available.  On Debian/Ubuntu systems, you need to install the python3-venv
package using the following command.

    apt-get install python3-venv

You may need to use sudo with that command.  After installing the python3-venv
package, recreate your virtual environment.

Failing command: ['/var/www/djangogirls/myvenv/bin/python3', '-Im', 'ensurepip', '--upgrade', '--default-pip']

อย่างที่คุณเห็นฉันกำลังพยายามสร้าง myvenv ซึ่งไม่สามารถสร้างได้เนื่องจาก python3-venv หายไป ฉันได้ติดตั้งสิ่งนี้ไปแล้ว แต่มั่นใจว่าไม่มี pip หลังจากค้นหาดูเหมือนว่าระบบ (Ubuntu 16.04) กีดกันการใช้งานของแพคเกจ มีคนช่วยฉันแก้ปัญหานี้ได้ไหม


คำสั่งจริงที่ล้มเหลวคือ/var/www/djangogirls/myvenv/bin/python3 -Im ensurepip ...ซึ่งอาจล้มเหลวด้วยเหตุผลที่แตกต่างกันโดยสิ้นเชิง
muru

คำตอบ:


14

มีรายงานข้อผิดพลาดที่เกี่ยวข้องที่นี่

ให้แน่ใจว่าองค์ประกอบหายไป / ปิดการใช้งานบน Ubuntu

วิธีการโดยรอบคือการสร้างสภาพแวดล้อมเสมือนจริงโดยไม่ต้อง pip

python3 -m venv myvenv --without-pip

ตรวจสอบให้แน่ใจว่าคอมโพเนนต์pipไม่ถูกเรียกใช้และสภาพแวดล้อมใหม่ถูกสร้างขึ้นในกรณีนี้

อย่างไรก็ตามจุดเล็ก ๆ ที่ขาดหายไปในสภาพแวดล้อมเสมือนอาจเป็นปัญหา

ทางออกหนึ่งคือการติดตั้งแพ็คเกจ pip3 ของระบบและใช้โมดูล pip ของระบบในสภาพแวดล้อมเสมือนจริงของคุณโดยตรง

สภาวะแวดล้อมเสมือนต้องมีการเข้าถึงแพ็กเกจไซต์ระบบเพื่อให้สามารถใช้โมดูล pip ของระบบ

  1. ติดตั้งแพ็คเกจ pip ของระบบ python3

    sudo apt-get install python3-pip
  2. สร้างสภาพแวดล้อมเสมือนโดยไม่ต้องใช้ pip และสามารถเข้าถึงแพ็คเกจของไซต์ระบบได้

    python3 -m venv myvenv --without-pip --system-site-packages

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

แทนที่จะpip install Djangoต้องใช้อย่างชัดเจน

myvenv/bin/python3 -m pip install Django

หรือคุณอาจเปิดใช้งานสภาพแวดล้อมเสมือนจริงของคุณก่อน

source myvenv/bin/activate
python3 -m pip install Django

python3 -m pip --version อาจมีประโยชน์ในการดูว่ามีการใช้สภาพแวดล้อมแบบใด

อิงตามโซลูชันที่พบที่นี่แต่อย่าใช้ข้อเสนอpython get-pip.pyในสภาพแวดล้อมเสมือนจริงเพราะมันจะขโมยpipคำสั่งของระบบ


บั๊ก Debian สำหรับปัญหานี้อยู่ที่นี่: bugs.debian.org/cgi-bin/bugreport.cgi?bug=901601
nnyby

1

อนาคอนด้าไม่รับผิดชอบ

หากคุณใช้ Anaconda หรือ Condaโซลูชันนี้อาจช่วยคุณได้:

Conda จัดการ python เองเป็นแพ็คเกจดังนั้นจึงเป็นไปได้ที่ conda python จะตรงกันข้ามกับ pip ซึ่งจัดการแพ็คเกจ Python เท่านั้น Conda พร้อมใช้งานใน Anaconda และ Miniconda (ดาวน์โหลดง่ายต่อการติดตั้งเพียง Python และ conda)

รบกวนมากสำหรับฉัน แต่เอามือไปที่แป้นพิมพ์ในหน้าต่าง terminal:

conda update python

ดูรูปนี้ผลลัพธ์บางทีนี่อาจช่วยคุณได้ขอให้มีความสุขมาก ๆ ในวันนี้!

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