pyvenv không hoạt động vì ensurepip không có sẵn


88

Tôi đã nâng cấp từ ubuntu 14.04 lên ubuntu 16.04 một vài ngày trước. Khi tôi cố gắng tạo một env ảo bằng cách sử dụng

pyvenv .venv

hoặc là

python3 -m venv .venv

Có một lỗi:

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']

Tôi đã thử chạy cả hai

sudo apt-get install python3-venv

sudo apt-get install python3.5-venv

nhưng nó không giải quyết được vấn đề của tôi.


Vấn đề của tôi được giải quyết trên OS với thông tin phát hành: Nhà phân phối ID: LinuxMint Mô tả: Linux Mint 18,3 Sylvia phát hành: 18,3
nix

không có câu trả lời nào giải quyết được nó cho tôi. vẫn bị mắc lỗi tương tự
Shoaib Iqbal

Câu trả lời:


115

Có vẻ như đó là một vấn đề về ngôn ngữ. Giải quyết bằng cách thực thi:

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

tìm thấy trên chuỗi này Lỗi ngôn ngữ Python: cài đặt ngôn ngữ không được hỗ trợ


35
Thật điên rồ nhưng đó là sự thật
user1703761

8
Thật sự rất tò mò, nhưng có ai biết lý do là gì không?
Juan Antonio

không làm việc cho tôi trên OS với distro thông tin: Nhà phân phối ID: LinuxMint Mô tả: Linux Mint 18,3 Sylvia phát hành: 18,3
nix

1
Cảm ơn, đang chạy một thiết lập docker tối thiểu ở đây. Tôi chưa bao giờ đoán được.
Antti Haapala

1
@JuanAntonio Có vẻ như Ubuntu (ít nhất là 16.04) là một kho lưu trữ không phải unicode, như đã đề cập trong vấn đề này: ticket.puppetlabs.com/browse/IMAGES-498 Đoán rằng chúng ta nên thêm cài đặt ngôn ngữ vào hệ thống khởi động máy chủ của mình .. .
Andreas Bergström

109

thử cài đặt python3.6-venv:

sudo apt-get install python3.6-venv

Cảm ơn vì giải pháp. Nó hoạt động trên 16.04 (dĩ nhiên là python3.6 đã được cài đặt). Điều tôi KHÔNG hiểu là: 1. venv chính xác nên làm cho việc sử dụng apt-get trở nên không cần thiết. Nó là một phần của thư viện tiêu chuẩn. 2. Tại sao phiên bản mặc định của pip sử dụng venv không phải là phiên bản mới nhất?
Lionel Trebuchon

26
... hoặc sudo apt-get install python3.7-venvnếu bạn sử dụng python 3.7
Alleo 27/09/18

12
... hoặc sudo apt-get install python3.8-venvnếu bạn sử dụng python 3.8
cowlinator

3
... hoặc sudo apt-get install python3.9-venvnếu bạn sử dụng python 3.9 (cho tương lai)
Andrey Semakin

7
... hoặc sudo apt-get install python3.10-venvnếu bạn sử dụng python 3.10 (trong trường hợp chúng ta tồn tại đến năm 2020)
Steven667

44

Một trong những câu trả lời khác đã sửa nó cho tôi lần trước, nhưng với Python 3.7, tôi phải làm:

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

Theo dõi bởi

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

22

Trong Hệ thống con Windows Linux và Ubuntu 18.04, điều này là do tôi đã không nâng cấp gần đây.

Tôi đã chạy:

sudo apt update
sudo apt upgrade

Sau đó sudo apt install python3-venvđã làm việc.

Lưu ý rằng tôi cũng đã thử giải pháp UTF-8 trước đó (tôi đã biến nó thành một phần của mình .bashrc), vì vậy đó có thể là một yếu tố góp phần.


4
Tôi không nghĩ rằng giải pháp UTF-8 quan trọng. Tôi cũng đang sử dụng WSL Ubuntu 18.04 và các bước sudo apt updatesudo apt install python3-venvđã đủ.
Theja

1
Đây là giải pháp duy nhất làm việc cho tôi! Tôi đã thử thay đổi ngôn ngữ và cài đặt phiên bản Python mới hơn nhưng không có kết quả
arctic.queenolina

2
điều này cũng hiệu quả với tôi, tôi đã thử một số tùy chọn khác .. nó không hoạt động,
Người học

tuyệt vời, làm việc cho tôi !!!
Reckoner

9

Trong trường hợp của tôi, các bước tiếp theo đã hoạt động:

  • Ubuntu 18.04.4 LTS
 $ sudo apt-get install python3-venv python3.7-venv
 $ python3.7 -m venv [your_path_to_virtual_env_here]

8

Trong trường hợp điều này giúp ích cho mọi người, tôi đã gặp lỗi tương tự trên Ubuntu 18.04. Đặt ngôn ngữ không hoạt động và cố gắng cài đặt python3-venvđã gây ra lỗi:

$ 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.

Và có vẻ như kho lưu trữ apt có hai phiên bản python:

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

Tôi đã cố gắng cài đặt Python3.6.5-3nhưng apt muốn gỡ cài đặt mọi phụ thuộc. Tôi đã có thể giải quyết vấn đề bằng cách cài đặt Python3.7 và tạo venv với điều đó:

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

1
Điều này đã làm việc cho tôi. Đã làm sudo apt install python3.8 python3.8-venvvà tạo ra môi trường ảo bằng cách sử dụng python3.8 -m venv venv_name. Cảm ơn!
Amir A. Shabani

5

Tôi gặp sự cố này trên Ubuntu 18.04 cho bản phát hành gần đây của Python-3.8 . Giải pháp của tôi là thêm PPA Deadsnakes để cung cấp python3.8-distutilsgói yêu cầu . Các python3.8-venvgói là đã có trong kho. Cảm ơn bài đăng blog này :

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

Lưu ý: Đây chỉ là giải pháp tạm thời. Trong tương lai gần, python3.8-distutilsgói yêu cầu có thể sẽ có sẵn trong kho lưu trữ mặc định của Ubuntu.

Biên tập:

Đối với Ubuntu 20.04 LTS, gói python3-distutils dựa trên Python 3.8. Cho đến nay, không có gói phân phối gói Python 3.8 nào khả dụng cho Ubuntu 18.04 LTS.

Như đã đề cập trong các nhận xét khác về chủ đề này, distutilscó thể không cần thiết. Đó là cho trường hợp sử dụng của tôi, nhưng vui lòng xem xét giải pháp đó trước khi thêm PPA bổ sung.


1
sudo apt install python3.8-venvlà người chiến thắng cho tôi. Tất cả các trợ giúp khác mà tôi có thể tìm thấy đã được tôi cố gắng cài đặt python3-venvthay thế.
user1717828

4

Đã giải quyết các vấn đề tương tự trên Ubuntu18 khi có câu trả lời này . Nó tương tự như cái đã làm việc cho @Niko Rikken, accept không thực sự cần bất kỳ gói PPA mới và "python3.8-distutils" nào. Tôi đang cài đặt môi trường python3.8 mới với venv và tôi đã cài đặt "python3-venv" và cập nhật, vì vậy giải pháp của tôi là chỉ cài đặt "python3.8-venv":

% sudo apt-get install python3.8-venv

Và điều đó làm cho dòng này hoạt động:

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

3

Thử : python3.* -m venv myvenv -

Và đừng quên thay thế * bằng phiên bản python cụ thể của bạn


2

Tôi đã gặp vấn đề tương tự - python env có 2 phiên bản cho 2.7 và 3.6.

Tất cả những gì bạn cần làm là:

  1. Cài đặt phiên bản mới nhất của pip bằng cách cài đặt trình cài đặt pyenv
  2. Đảm bảo bạn làm theo các bước cài đặt pyenv tại đây

Chúc may mắn!


2

Nếu ý định của bạn là lấy python3.8 incl. pip và venv trên Ubuntu 18.04:

  • sudo apt install python3.8 python3.8-venv python3-pip # không có gói python3,8-pip
  • python3.8 -m venv venv
  • source venv/bin/activate
  • python --version # -> python 3.8.0
  • pip --version # -> pip 9.0.1 từ /home/user/venv/lib/python3.8/site-packages (python 3.8)

2

Tôi đã phải đối mặt với cùng một vấn đề và tôi đang tìm kiếm một giải pháp. Đó là về vấn đề:

ensurepip bị tắt trong Debian / Ubuntu cho hệ thống python.

Và đây là giải pháp của tôi:

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

1
Lưu ý rằng môi trường python mà không pipcó có thể không hữu ích.
ankostis

2

Hãy thử các lệnh sau:

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

Các lệnh này có thể phù hợp với bạn.

Nếu bạn gặp bất kỳ lỗi nào như E: Unable to locate package python3-venv Sau đó, hãy thử các lệnh sau:

sudo apt install python3.6-venv

1

Tôi đã gặp vấn đề tương tự đối với một dự án hiện có khi thực hiện python3 -m venv venv. Tôi vừa cập nhật phiên bản Ubuntu và Python của mình. Sau khi xóa venvthư mục đã tồn tại , vấn đề đã được giải quyết. (Tôi cũng đã thử giải pháp UTF-8 .)


1

Vấn đề của tôi liên quan đến quyền và quyền sở hữu. Tôi đã đăng nhập với một người dùng khác với tư cách là chủ sở hữu của thư mục hiện tại, dẫn đến lỗi này. Sau khi xem xét và sửa tất cả các quyền, tôi đã có thể cài đặt venv thườngl


Đây chính xác là vấn đề của tôi. Khi tôi thay đổi thư mục chính của người dùng hiện tại, lệnh chạy tốt. Đây phải là một lỗi trong đó nó giả định rằng python3-venv không được cài đặt khi nó thực sự gặp sự cố về quyền.
Cosmicnet

0

Tất cả những đề xuất này đã không giúp tôi.

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

Tôi cũng vậy: sudo apt-get install python3/bionic

Bây giờ tôi có python 3.6.5 và apt-list đã hiển thị một danh sách tốt hơn: $ apt list python3 -a python3 / bionic 3.6.5-3 amd64

Với sudo apt-get install python3-venv/bionictôi, tôi có thể cài đặt pythno3-venv và mọi thứ đều hoạt động.


Tôi đang sử dụng ubuntu tích cực khoảng 5 năm nhưng tôi chưa bao giờ thấy cú pháp "python3 / bionic": O câu trả lời của bạn đã giải quyết được vấn đề của tôi, cảm ơn.
kodmanyagha

Rất vui vì nó hoạt động, tôi cũng không biết cú pháp đó, tôi chỉ đơn giản là thử vì "danh sách apt" đã hiển thị các gói theo cách đó ;-) Nếu câu trả lời đó giúp bạn, bạn có thể nhấn nút "up".
Stefan

Nếu bạn có thể sử dụng tên gói không chuẩn, điều đó có nghĩa là bạn đã cấu hình nguồn gói không chuẩn. apt-cache policy python3/bioniccó thể giúp bạn tìm ra gói này đến từ đâu. Nó không phải từ Ubuntu.
tripleee

0

Trong trường hợp của tôi, chạy sudo apt-get install python3.8-venvthành công nhưng nó hiển thị cùng một lỗi khi chạy python3 -m venv .venv.

Cuối cùng, lệnh này hoạt động mà không cần thay đổi ngôn ngữ.

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


0

Điều này đã làm việc cho tôi ... Đầu tiên, tôi đã chạy

sudo apt-get update

Sau đó

sudo apt-get install -y python3-venv zip


-1
sudo apt-get update 

Đã làm cho tôi.

Chỉnh sửa: Tôi rất muốn biết chính xác vấn đề là gì, nhưng tôi không biết. Tôi đã thử chạy các lệnh như được mô tả bởi người hỏi và nó báo lỗi, sau đó tôi cập nhật và nó hoạt động. :-D


3
Vui lòng giải thích tại sao câu trả lời của bạn giải quyết được câu hỏi.
RyanNerd

1
Chạy lệnh và cập nhật cây gói không tạo thành câu trả lời, vui lòng giải thích thêm
Andres Felipe

-2

Không ai trong số này làm việc cho tôi. Tôi đang sử dụng ubuntu 18.04. Chỉ cần gỡ cài đặt hoàn toàn anaconda và mọi thứ đều hoạt động. Đăng chỉ trong trường hợp nó giúp bất cứ ai. Đối với các lệnh để gỡ cài đặt: 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
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.