pyvenv ไม่ทำงานเนื่องจาก surepip ไม่พร้อมใช้งาน


93

ฉันอัปเกรดจาก ubuntu 14.04 เป็น ubuntu 16.04 เมื่อสองสามวันก่อน เมื่อฉันพยายามสร้าง env เสมือนโดยใช้

pyvenv .venv

หรือ

python3 -m venv .venv

มีข้อผิดพลาด:

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: ['/usr/bin/python3.5', '-Im', 'ensurepip', '--upgrade', '--default-pip']

ฉันลองรันทั้งสองอย่าง

sudo apt-get install python3-venv

และ

sudo apt-get install python3.5-venv

แต่มันไม่สามารถแก้ปัญหาของฉันได้


ปัญหาของฉันได้รับการแก้ไขบน OS พร้อมข้อมูลการเปิดตัว: Distributor ID: LinuxMint คำอธิบาย: Linux Mint 18.3 Sylvia Release: 18.3
nix

ไม่มีคำตอบใดที่สามารถแก้ไขได้สำหรับฉัน ยังคงติดอยู่กับข้อผิดพลาดเดียวกัน
Shoaib Iqbal

คำตอบ:


119

ดูเหมือนว่าจะเป็นปัญหาในพื้นที่ แก้ไขได้โดยดำเนินการ:

export LC_ALL="en_US.UTF-8"
export LC_CTYPE="en_US.UTF-8"
sudo dpkg-reconfigure locales

พบในเธรดนี้Python locale error: ไม่รองรับการตั้งค่า locale


37
มันบ้า แต่เป็นเรื่องจริง
user1703761

8
อยากรู้จริงๆ แต่มีใครรู้บ้างว่าเป็นเพราะอะไร?
Juan Antonio

ไม่ทำงานสำหรับฉันบนระบบปฏิบัติการที่มีข้อมูล distro: Distributor ID: LinuxMint คำอธิบาย: Linux Mint 18.3 Sylvia Release: 18.3
nix

1
ขอบคุณเรียกใช้การตั้งค่านักเทียบท่าขั้นต่ำที่นี่ ฉันไม่เคยเดา
Antti Haapala

1
@JuanAntonio ดูเหมือนว่า Ubuntu (อย่างน้อย 16.04) จะเป็นบิสโทรที่ไม่ใช่ Unicode นอกกรอบดังที่กล่าวไว้ในปัญหานี้: ticket.puppetlabs.com/browse/IMAGES-498 เดาว่าเราควรเพิ่มการตั้งค่าโลแคลในการบูตเซิร์ฟเวอร์ของเรา .. .
Andreas Bergström

115

ลองติดตั้ง python3.6-venv:

sudo apt-get install python3.6-venv

1
ขอบคุณสำหรับการแก้ปัญหา ทำงานบน 16.04 (เนื่องจากว่า python3.6 ได้รับการติดตั้งแล้วแน่นอน) สิ่งที่ฉันไม่เข้าใจก็คือ 1. venv ควรใช้ apt-get โดยไม่จำเป็น เป็นส่วนหนึ่งของไลบรารีมาตรฐาน 2. ทำไม pip เวอร์ชันเริ่มต้นที่ใช้ venv ถึงไม่ใช่เวอร์ชันล่าสุด?
Lionel Trebuchon

30
... หรือsudo apt-get install python3.7-venvถ้าคุณใช้ python 3.7
Alleo

13
... หรือsudo apt-get install python3.8-venvถ้าคุณใช้ python 3.8.2
cowlinator

3
... หรือsudo apt-get install python3.9-venvถ้าคุณใช้ python 3.9 (สำหรับอนาคต)
Andrey Semakin

12
... หรือsudo apt-get install python3.10-venvถ้าคุณใช้ python 3.10 (ในกรณีที่เราอยู่รอดในปี 2020)
Steven667

45

คำตอบอื่น ๆ แก้ไขให้ฉันครั้งที่แล้ว แต่ด้วย Python 3.7 ฉันต้องทำ:

apt install python3-pip python3-setuptools python3.7-venv

ติดตามโดย

python3.7 -m venv /path/to/venv

ใช้งานได้กับ Ubuntu 18.04
iwtu

24

ภายใต้ Windows Linux Subsystem และ Ubuntu 18.04 สาเหตุนี้เกิดจากการที่ฉันไม่ได้อัปเกรดเมื่อเร็ว ๆ นี้

ฉันวิ่ง:

sudo apt update
sudo apt upgrade

แล้ว sudo apt install python3-venvทำงาน.

โปรดทราบว่าฉันได้ลองใช้โซลูชัน UTF-8มาก่อนแล้ว (ฉันทำให้มันเป็นส่วนหนึ่งของฉัน.bashrc) ซึ่งอาจเป็นปัจจัยสนับสนุน


4
ฉันไม่คิดว่าโซลูชัน UTF-8 มีความสำคัญ ฉันยัง WSL อูบุนตู 18.04 และขั้นตอนsudo apt updateและsudo apt install python3-venvเพียงพอ
ธีจา

1
นี่เป็นทางออกเดียวที่เหมาะกับฉัน! ฉันลองเปลี่ยนสถานที่และติดตั้ง Python เวอร์ชันใหม่แล้วก็ไม่มีประโยชน์
arctic.queenolina

2
สิ่งนี้ได้ผลสำหรับฉันเช่นกันฉันลองใช้ตัวเลือกอื่น ๆ หลายตัว .. มันไม่ได้ผล
ผู้เรียน


9

ในกรณีนี้ช่วยทุกคนในบรรทัดฉันได้รับข้อผิดพลาดเดียวกันบน Ubuntu 18.04 การตั้งค่าภาษาไม่ทำงานและการพยายามติดตั้งpython3-venvทำให้เกิดข้อผิดพลาด:

$ sudo apt-get install python3-venv
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 python3-venv : Depends: python3.6-venv (>= 3.6.5-2~) but it is not going to be installed
                Depends: python3 (= 3.6.5-3) but 3.6.7-1~18.04 is to be installed
E: Unable to correct problems, you have held broken packages.

และดูเหมือนว่าที่เก็บ apt มี python สองเวอร์ชัน:

$ apt list python3 -a
python3/bionic-updates,now 3.6.7-1~18.04 amd64 [installed]
python3/bionic 3.6.5-3 amd64

ฉันพยายามติดตั้งPython3.6.5-3แต่ apt ต้องการถอนการติดตั้งทุกการพึ่งพา ฉันสามารถแก้ปัญหาได้โดยการติดตั้ง Python3.7 และสร้าง venv ด้วยสิ่งนั้น:

$ sudo apt-get install python3.7 python3.7-venv
$ python3.7 -m venv my_venv

1
สิ่งนี้ได้ผลสำหรับฉัน ทำsudo apt install python3.8 python3.8-venvและสร้างสภาพแวดล้อมเสมือนโดยใช้python3.8 -m venv venv_name. ขอบคุณ!
Amir A. Shabani

5

ผมพบปัญหานี้บนUbuntu 18.04สำหรับรุ่นล่าสุดของงูใหญ่ 3.8 วิธีแก้ปัญหาของฉันคือเพิ่มDeadsnakes PPAซึ่งจัดหาpython3.8-distutilsแพ็คเกจที่ต้องการ python3.8-venvแพคเกจที่มีอยู่แล้วในพื้นที่เก็บข้อมูล ขอบคุณบล็อกโพสต์นี้ :

sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt update
sudo apt install python3.8
sudo apt install python3.8-distutils
sudo apt install python3.8-venv

หมายเหตุ:นี่เป็นเพียงวิธีแก้ปัญหาชั่วคราว ในอนาคตอันใกล้python3.8-distutilsแพคเกจที่จำเป็นอาจมีให้ในที่เก็บ Ubuntu เริ่มต้น

แก้ไข:

สำหรับ Ubuntu 20.04 LTS python3-distutilsใช้ Python 3.8 ณ วันนี้ยังไม่มีแพ็คเกจ distutils แพ็คเกจ Python 3.8 สำหรับ Ubuntu 18.04 LTS

ตามที่กล่าวไว้ในความคิดเห็นอื่น ๆ ในชุดข้อความนี้distutilsอาจไม่จำเป็นต้องใช้ สำหรับกรณีการใช้งานของฉัน แต่โปรดพิจารณาวิธีแก้ปัญหานั้นก่อนที่จะเพิ่ม PPA เพิ่มเติม


1
sudo apt install python3.8-venvเป็นผู้ชนะสำหรับฉัน ความช่วยเหลืออื่น ๆ ทั้งหมดที่ฉันพบได้ให้ฉันพยายามติดตั้งpython3-venvแทน
user1717828

4

แก้ไขปัญหาที่คล้ายกันบน Ubuntu18 เมื่อได้รับคำตอบนี้ คล้ายกับที่ทำงานให้กับ @Niko Rikken ยอมรับว่าไม่จำเป็นต้องมีแพ็คเกจ PPA และ "python3.8-distutils" ใหม่ ฉันกำลังติดตั้งสภาพแวดล้อม python3.8 ใหม่ด้วย venv และฉันได้ติดตั้ง "python3-venv" แล้วและเป็นเวอร์ชันล่าสุดดังนั้นวิธีแก้ปัญหาของฉันคือติดตั้งเฉพาะ "python3.8-venv":

% sudo apt-get install python3.8-venv

และนั่นทำให้บรรทัดนี้ใช้งานได้:

% python3.8 -m venv ~/envs/new_env
% source ~/envs/new_env/bin/activate


3

ฉันประสบกับปัญหาเดียวกันและกำลังหาทางแก้ไข มันเกี่ยวกับปัญหา:

surepip ถูกปิดใช้งานใน Debian / Ubuntu สำหรับ python ของระบบ

และนี่คือทางออกของฉัน:

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

2
โปรดทราบว่าสภาพแวดล้อม python ที่ไม่มีpipอาจไม่มีประโยชน์
ankostis

3

ลองใช้คำสั่งต่อไปนี้:

sudo apt install python-virtualenv
virtualenv --python=python3.6 myenv

คำสั่งเหล่านี้อาจใช้ได้ผลสำหรับคุณ

หากคุณได้รับข้อผิดพลาดเช่นE: Unable to locate package python3-venv จากนั้นลองใช้คำสั่งต่อไปนี้:

sudo apt install python3.6-venv

3

Python อัพเดตหรือ Default python เปลี่ยนและติดตั้ง venv แล้ว

venv ที่ติดตั้งในระบบของคุณได้รับการติดตั้งโดย python เวอร์ชันก่อนหน้าของคุณ (สมมติว่า python3.6) นั่นเป็นเหตุผลที่ venv ไม่ทำงานกับ python เวอร์ชันปัจจุบัน (สมมติว่า 3.8)

ดังนั้นก่อนอื่นให้ตรวจสอบเวอร์ชัน python หรือ python3 เริ่มต้นของคุณ (สมมติว่าเวอร์ชันปัจจุบันของคุณคือ python3.8)

ติดตั้งสภาพแวดล้อมเสมือนใหม่อีกครั้งโดยกล่าวถึงเวอร์ชัน python ปัจจุบัน (3.8) ดังต่อไปนี้

sudo apt-get install python3.xx-venv        >> replace xx with your current/default python version

หากสิ่งนี้ช่วยให้คุณเพิ่มคะแนนได้ฉันใหม่บนแพลตฟอร์มนี้


2

ฉันมีปัญหาเดียวกัน - python env มี 2 เวอร์ชันสำหรับ 2.7 และ 3.6

สิ่งที่คุณต้องทำคือ:

  1. ติดตั้ง pip เวอร์ชันล่าสุดโดยติดตั้งโปรแกรมติดตั้ง pyenv
  2. ตรวจสอบให้แน่ใจว่าคุณทำตามขั้นตอนการติดตั้ง pyenv ที่นี่

โชคดี!


2

หากคุณตั้งใจจะได้ python3.8 รวม. pip และ venv บน Ubuntu 18.04:

  • sudo apt install python3.8 python3.8-venv python3-pip # ไม่มีแพ็คเกจ python3.8-pip
  • python3.8 -m venv venv
  • source venv/bin/activate
  • python --version # -> python 3.8.0
  • pip --version # -> pip 9.0.1 จาก /home/user/venv/lib/python3.8/site-packages (python 3.8)

1

python3 -m venv venvผมมีปัญหาเหมือนกันสำหรับโครงการที่มีอยู่เมื่อมีการดำเนิน ฉันเพิ่งอัปเดตเวอร์ชัน Ubuntu และ Python หลังจากลบvenvโฟลเดอร์ที่มีอยู่แล้วปัญหาได้รับการแก้ไข (ฉันได้ลองใช้โซลูชัน UTF-8ด้วย)


1

ปัญหาของฉันเกี่ยวข้องกับสิทธิ์และความเป็นเจ้าของ ฉันลงชื่อเข้าใช้ด้วยผู้ใช้อื่นเป็นเจ้าของไดเร็กทอรีปัจจุบันซึ่งนำไปสู่ข้อผิดพลาดนี้ หลังจากตรวจสอบและแก้ไขสิทธิ์ทั้งหมดฉันสามารถติดตั้ง venv regularl ได้


นี่คือปัญหาของฉันอย่างแน่นอน เมื่อฉันเปลี่ยนเป็นโฮมไดเร็กทอรีของผู้ใช้ปัจจุบันคำสั่งทำงานได้ดี นี่จะต้องเป็นจุดบกพร่องที่ถือว่า python3-venv ไม่ได้ติดตั้งเมื่อมีปัญหาเรื่องสิทธิ์
Cosmicnet

0

คำแนะนำทั้งหมดนี้ไม่ได้ช่วยฉัน

$ apt list python3 -a
python3/now 3.6.7-1~18.04 amd64 [installed,local]
python3/bionic 3.6.5-3 amd64

ดังนั้นฉันจึง: sudo apt-get install python3/bionic

ตอนนี้ฉันมี python 3.6.5 และ apt-list แสดงรายการที่ดีกว่า: $ apt list python3 -a python3 / bionic 3.6.5-3 amd64

ด้วยsudo apt-get install python3-venv/bionicฉันสามารถติดตั้ง pythno3-venv และทุกอย่างใช้งานได้


ฉันใช้ ubuntu ประมาณ 5 ปี แต่ฉันไม่เคยเห็นมาก่อนว่าไวยากรณ์ "python3 / bionic": O คำตอบของคุณช่วยแก้ปัญหาของฉันได้ขอบคุณ
kodmanyagha

ดีใจที่มันใช้งานได้ฉันไม่รู้ว่าไวยากรณ์นั้นฉันแค่ลองเพราะ "apt list" แสดงแพ็คเกจแบบนั้น ;-) ถ้าคำตอบนั้นช่วยคุณได้คุณอาจกดปุ่ม "ขึ้น"
Stefan

หากคุณสามารถใช้ชื่อแพ็กเกจที่ไม่เป็นมาตรฐานได้หมายความว่าคุณมีการกำหนดค่าแหล่งที่มาของแพ็กเกจที่ไม่เป็นมาตรฐาน apt-cache policy python3/bionicอาจช่วยให้คุณทราบว่าแพ็กเกจนี้มาจากที่ใด ไม่ใช่จาก Ubuntu
tripleee

0

ในกรณีของฉันการรันsudo apt-get install python3.8-venvประสบความสำเร็จ แต่แสดงข้อผิดพลาดเดียวกันเมื่อทำงานpython3 -m venv .venvแต่มันก็แสดงให้เห็นถึงข้อผิดพลาดเดียวกันเมื่อทำงาน

สุดท้ายคำสั่งนี้ใช้งานได้โดยไม่ต้องเปลี่ยนโลแคล

python3.8 -c 'import venv; venv.create(".venv", with_pip=True)'


0

สิ่งนี้ได้ผลสำหรับฉัน ... ประการแรกฉันวิ่ง

sudo apt-get update

แล้ว

sudo apt-get install -y python3-venv zip


0

นี่คือคำตอบของฉันสำหรับ Ubuntu 14.04 ฉันสามารถทำให้ venv และ pip ​​ทำงานร่วมกับ Python เวอร์ชันต่างๆได้ รายละเอียด:

  • 3.4: Ubuntu 14.04 มี Python 3.4 (เป็นแพ็คเกจ python3.4 เป็นต้น) มันได้ผล:

    $ sudo apt-get install python3.4 python3.4-dev python3.4-venv gcc libc6-dev
    $ mkdir /tmp/try3.4
    $ python3.4 -m venv /tmp/try3.4
    $ . /tmp/try/bin/activate
    (try3.4) $ pip install print-hello-world
    ...
    (try3.4) $ print-hello-world
    Hello World!
    

    หากpython3.4-venvถูกลบออกจากapt-get installคำสั่งด้านบนpython3.4 -m venvแสดงข้อความแสดงข้อผิดพลาดเดียวกันกับในคำถาม อย่างไรก็ตามข้อความแสดงข้อผิดพลาดระบุว่าapt-get install python3-venvต้องแก้ไข แต่ไม่ได้ผลไม่มีแพ็คเกจดังกล่าว (ชื่อแพ็กเกจที่ถูกต้องคือpython3.4-venv)

    โปรดทราบว่า Python 3.4 ค่อนข้างเก่าและบางแพ็คเกจ Python ที่มีใน PyPI (ผ่าน pip) ไม่สามารถใช้งานได้

  • 3.5: สามารถติดตั้งได้จากที่เก็บ deadsnakes มันได้ผล:

    $ sudo add-apt-repository ppa:deadsnakes/ppa
    $ sudo apt-get update
    $ sudo apt-get install python3.5 python3.5-dev python3.5-venv gcc libc6-dev
    $ mkdir /tmp/try3.5
    $ python3.5 -m venv /tmp/try
    $ . /tmp/try/bin/activate
    (try3.5) $ pip install print-hello-world
    ...
    (try3.5) $ print-hello-world
    Hello World!
    
  • 3.6: Ditto สามารถติดตั้งได้จากที่เก็บ deadsnakes มันได้ผล:

    $ sudo add-apt-repository ppa:deadsnakes/ppa
    $ sudo apt-get update
    $ sudo apt-get install python3.6 python3.6-dev python3.6-venv gcc libc6-dev
    $ mkdir /tmp/try3.6
    $ python3.6 -m venv /tmp/try3.6
    $ . /tmp/try3.6/bin/activate
    (try3.6) $ pip install print-hello-world
    ...
    (try3.6) $ print-hello-world
    Hello World!
    
  • 3.7: ใช้งานไม่ได้เพราะpip installล้มเหลวimport _sslและ python3.7 ใน repo deadsnakes ไม่มีโมดูลนั้นเนื่องจาก Ubuntu 14.04 มาพร้อมกับ OpenSSL เวอร์ชันเก่าซึ่ง Python 3.7 ไม่รองรับ ดูรายละเอียดเพิ่มเติมในจุดบกพร่องนี้

  • 3.8--: ไม่มีแพ็คเกจ Ubuntu 14.04 สำหรับเวอร์ชัน Python เหล่านี้ใน Ubuntu หรือที่เก็บ deadsnakes


-1
sudo apt-get update 

ทำงานให้ฉัน

แก้ไข: ฉันชอบที่จะรู้ว่าอะไรคือปัญหา แต่ฉันไม่รู้ ฉันลองเรียกใช้คำสั่งตามที่ผู้ถามอธิบายและมันให้ข้อผิดพลาดจากนั้นฉันอัปเดตและใช้งานได้ :-D


5
โปรดอธิบายอย่างละเอียดว่าเหตุใดคำตอบของคุณจึงช่วยแก้คำถามได้
RyanNerd

2
การเรียกใช้คำสั่งและการอัปเดตโครงสร้างแพ็กเกจไม่ถือเป็นคำตอบโปรดอธิบายให้ละเอียด
Andres Felipe

-2

สิ่งนี้ไม่ได้ผลสำหรับฉัน ฉันใช้ ubuntu 18.04 เพิ่งถอนการติดตั้งอนาคอนดาอย่างสมบูรณ์และทุกอย่างใช้งานได้ โพสต์ไว้เผื่อว่าจะช่วยใครได้ สำหรับคำสั่งในการถอนการติดตั้ง: https://linuxize.com/post/how-to-install-anaconda-on-ubuntu-18-04/

rm -rf ~/anaconda3
export PATH="/home/linuxize/anaconda3/bin:$PATH" 
rm -rf ~/.condarc ~/.conda ~/.continuum

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