lỗi pyvenv-3.4: trả về trạng thái thoát không khác 1


58

Khi cố gắng tạo một môi trường ảo bằng cách sử dụng pyvenv-3.4đi kèm với 14.04, nó sẽ báo lỗi:

Error: Command '['/some/directories/bin/python3.4', '-Im', 'ensurepip', '--upgrade', '--default-pip']' returned non-zero exit status 1

Làm cách nào để sử dụng pyvenv-3.4 với Ubuntu 14.04?


1
Nếu bạn đang sử dụng Anaconda thì đó là vấn đề, Anaconda không có ensurepip: stackoverflow.com/a/39114277/1439843
Gerhard Burger

Câu trả lời:


50

Thật không may, 14.04 vận chuyển với một hỏng pyvenv. Theo chủ đề launchpad này , vấn đề sẽ được giải quyết trong 14.04-1 sắp tới

Sử dụng phương pháp này, bạn có thể cài đặt môi trường Pyvenv mà không cần pip và sau đó cài đặt thủ công pip sau khi thực tế.

pyvenv-3.4 --without-pip myvenv
source ./myvenv/bin/activate
wget https://pypi.python.org/packages/source/s/setuptools/setuptools-3.4.4.tar.gz
tar -vzxf setuptools-3.4.4.tar.gz
cd setuptools-3.4.4
python setup.py install
cd ..
wget https://pypi.python.org/packages/source/p/pip/pip-1.5.6.tar.gz
tar -vzxf pip-1.5.6.tar.gz
cd pip-1.5.6
python setup.py install
cd ..
deactivate
source ./myvenv/bin/activate

Ai đó đã đề xuất một chỉnh sửa triệt để để sử dụng get-pip.pytrong câu trả lời này - Tôi nghĩ rằng đó là quá nhiều thay đổi, nhưng vui lòng thêm giải pháp của bạn dưới dạng một câu trả lời mới (thậm chí chỉ sao chép phần trên của câu trả lời này)!
Volker Siegel

Bạn đang ở thư mục nào khi chạy các lệnh này? Đó là, đây có phải là thư mục bạn sẽ xây dựng ứng dụng python của mình hay bạn phải cd vào 'myenv' cho điều đó. Hoặc, tại sao bạn tạo một thư mục con cho môi trường? Những câu hỏi ngớ ngẩn, nhưng tôi chưa bao giờ sử dụng câu hỏi này trước đây và có quá nhiều câu trả lời khác nhau. Ít nhất câu trả lời của bạn có một lần tải xuống từ trang python.org và không phải là kho lưu trữ github mà tôi chưa từng nghe đến. Tôi hơi hoang tưởng về những thứ như thế.
Bill Rosmus

4
Điều này vẫn bị phá vỡ trong 15.04 là tốt.
knite

4
Điều này vẫn bị phá vỡ trong 14.04.2 LTS
tamakisapes

Không hoàn toàn là một vấn đề Ubuntu, nhưng tôi có cùng một vấn đề với Miniconda.
art-solopov

45

Lý do: Cả Ubuntu 14.04 và Debian đều có một pyvenv-3.4công cụ bị hỏng . Xem lỗi Ubuntu 1290847lỗi Debian 732703 .

Giải pháp / cách giải quyết (ngắn hơn câu trả lời từ câu trả lời khác):

pyvenv-3.4 --without-pip venvdir
source venvdir/bin/activate
curl https://bootstrap.pypa.io/get-pip.py | python
deactivate
source venvdir/bin/activate

Tôi đã mô tả lỗi này trong Gist của riêng tôi . URL trong mã này là từ hướng dẫn cài đặt pip chính thức .


5
Bạn cần phải thêm tiền tố 'sudo apt-get install python3.4-venv' - Nếu không thì tôi không có 'pyvenv-3.4' có thể thực thi được trên PATH. (Ubuntu 15.04)
Jonathan Hartley

@JonathanHartley: Đúng. Tuy nhiên, lỗi được đề cập trong câu hỏi / câu trả lời này không có trong Ubuntu 15.04, vì vậy cách khắc phục trong câu trả lời này là không cần thiết.
Denilson Sá Maia

Tò mò. Tôi đến đây vì tôi đang nhìn thấy những vấn đề trong 15.04. Ah. Một vài mục cuối cùng về lỗi Ubuntu kéo dài mà bạn liên kết nói rằng cần phải cài đặt gói python3-venv mới, không phải là phụ thuộc của python3, để sửa lỗi.
Jonathan Hartley

@JonathanHartley: Thông báo lỗi của bạn phải khác với thông báo lỗi từ câu hỏi. Thông báo lỗi của bạn phải được pyvenv-3.4: command not found. Và, vâng, cài đặt python3-venvlà giải pháp cho lỗi của bạn.
Denilson Sá Maia

10

Điều này cũng nên làm việc:

sudo apt-get install python-virtualenv
virtualenv -p python3 myvenv

Hoặc tốt hơn:

sudo apt-get install python3-pip
sudo pip3 install virtualenv
virtualenv myvenv

2

Bạn đang thiếu lib venv cho python 3.4, chỉ cần chạy:

$ apt-get cài đặt python3.4-dev python3.4-venv


0

Cách tôi giải quyết điều này là bằng cách chạy

$ python -m ensurepip

Điều này tạo ra một stacktrace kết thúc với dòng này:

FileNotFoundError: [Errno 2] No such file or directory: '/usr/lib64/python3.4/ensurepip/_bundled/setuptools-20.10.1-py2.py3-none-any.whl'

Vì vậy, tôi đã truy cập https://pypi.python.org/pypi/setuptools/20.10.1 và lấy bánh xe và đặt nó vào thư mục của tôi (mà tôi phải tạo ra mkdir -p /usr/lib64/python3.4/ensurepip/_bundled/)

Sau đó chạy python -m ensurepiplại tôi đã phải đối mặt với

No such file or directory: '/usr/lib64/python3.4/ensurepip/_bundled/pip-8.1.1-py2.py3-none-any.whl

Vì vậy, tôi đã truy cập https://pypi.python.org/pypi/pip/8.1.1 , chộp lấy bánh xe đó và mắc kẹt trong thư mục.

Bây giờ tôi có thể tạo virtualenvs với python -m venv .venv. Sự thành công!


0

Đã thử nghiệm trên Debian

 
$ python3.4 -m venv --without-pip env
$ cd env
$ source ./bin/activate # virtualenv activated

$ wget https://bootstrap.pypa.io/get-pip.py # get installation script for pip
$ python3.4 get-pip.py
$ deactivate
$ source venvdir/bin/activate

$ pip list # just to check that pip works!


Debian không có chủ đề ở đây mặc dù ...
Zanna

Xin lỗi vì điều đó. Tôi đã hy vọng rằng nó sẽ hữu ích như một điểm dữ liệu vì Ubuntu sử dụng Debian làm cơ sở. Tôi có thể thử trong máy ảo Ubuntu của mình sau
razorsniper

Điều đó sẽ rất tuyệt :)
Zanna

-1

Tôi đã gặp lỗi này vì tôi đã thiếu python3-venvgói trên hệ thống của mình.


1
Xin vui lòng cho biết cách cài đặt nó để người khác có thể sử dụng nó khi cần thiết.
George Udosen
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.