Làm cách nào để cài đặt pip cho Python 3.6 trên Ubuntu 16.10?


40

Tôi muốn bắt đầu bằng cách chỉ ra rằng câu hỏi này có vẻ giống như một bản sao, nhưng không phải vậy. Tất cả các câu hỏi tôi thấy ở đây trên Ask Ubuntu đều liên quan đến pip cho Python 3 và tôi đang nói về Python 3.6. Các bước được sử dụng trước đó không hoạt động cho Python 3.6.

  1. Tôi đã nhận được một hình ảnh Ubuntu 16.10 rõ ràng từ cửa hàng docker chính thức .
  2. Chạy apt-get update
  3. Chạy apt-get install python3.6
  4. Chạy apt-get install python3-pip
  5. Chạy pip3 install requests bs4
  6. Chạy python3.6 script.py

Got ModuleNotFoundErrordưới đây:

 Traceback (most recent call last):
    File "script.py", line 6, in <module>
     import requests
 ModuleNotFoundError: No module named 'requests'

Python và pip của tôi có trong máy:

python3
python3.5
python3.5m
python3.6
python3m
python3-config
python3.5-config
python3.5m-config
python3.6m
python3m-config  

pip
pip3
pip3.5

Câu hỏi đã được đăng chéo lên Stack Overflow
wjandrea

Câu trả lời:


44

Câu trả lời này giả định rằng bạn đã python3.6cài đặt. Cho python3.7, thay thế 3.6bằng 3.7. Đối với python3.8, thay thế 3.6bằng 3.8, nhưng trước tiên nó cũng có thể yêu cầu python3.8-distutilsgói.

Cài đặt với sudo

Liên quan đến việc cài đặtpip , sử dụng curl(thay vì wget) tránh ghi tệp vào đĩa.

curl https://bootstrap.pypa.io/get-pip.py | sudo -H python3.6

Các -Hcờ rõ ràng là cần thiết với sudođể ngăn chặn các lỗi như sau khi cài đặt pip cho một thông dịch viên python Cập nhật:

Thư mục '/home/someuser/.cache/pip/http' hoặc thư mục mẹ của nó không thuộc sở hữu của người dùng hiện tại và bộ đệm đã bị vô hiệu hóa. Vui lòng kiểm tra các quyền và chủ sở hữu của thư mục đó. Nếu thực thi pip bằng sudo, bạn có thể muốn cờ -H của sudo.

Thư mục '/home/someuser/.cache/pip' hoặc thư mục mẹ của nó không thuộc sở hữu của người dùng hiện tại và các bánh xe bộ đệm đã bị vô hiệu hóa. kiểm tra các quyền và chủ sở hữu của thư mục đó. Nếu thực thi pip bằng sudo, bạn có thể muốn cờ -H của sudo.

Cài đặt không có sudo

curl https://bootstrap.pypa.io/get-pip.py | python3.6 - --user

Điều này đôi khi có thể đưa ra một cảnh báo như:

CẢNH BÁO: Bánh xe tập lệnh được cài đặt trong '/home/ubfox/.local/bin' không có trên PATH. Cân nhắc thêm thư mục này vào PATH hoặc, nếu bạn muốn loại bỏ cảnh báo này, hãy sử dụng --no-warn-script-location.

xác minh

Sau này, pip, pip3, và pip3.6có thể tất cả được dự kiến để trỏ đến cùng một mục tiêu:

$ (pip -V && pip3 -V && pip3.6 -V) | uniq
pip 18.0 from /usr/local/lib/python3.6/dist-packages (python 3.6)

Tất nhiên bạn có thể thay thế sử dụng python3.6 -m piplà tốt.

$ python3.6 -m pip -V
pip 18.0 from /usr/local/lib/python3.6/dist-packages (python 3.6)

5
Kịch bản dường như giả định rằng python3.6có các công cụ thiết lập / cài đặt dễ dàng. Vì lý do đó, nó đã không làm việc cho tôi. Tôi đã kết thúc bằng cách sử dụngcurl https://bootstrap.pypa.io/ez_setup.py -o - | python3.6 && python3.6 -m easy_install pip
FirefoxMetzger

Tôi đã cài đặt python3.6python3.6-devtừ ppa:jonathonf/python-3.6trên Ubuntu 14.04. Tôi không chắc chắn đơn giản là tôi đã quên setuptools hay nếu nó bị hỏng, nhưng nó không hoạt động vào thời điểm đó.
FirefoxMetzger

Nó không làm sai lệch câu trả lời của bạn theo bất kỳ cách nào =) Nó chỉ là một bổ sung trong trường hợp bất kỳ ai gặp phải vấn đề tương tự (hy vọng không phổ biến).
FirefoxMetzger

@ABB Nếu tôi muốn pip -Vpython 2.7pip3 -V && pip3.6 -Vđược python 3.6làm thế nào tôi có thể làm gì?
Benyamin Jafari

1
Bạn cũng có thể sử dụng wget -O -để truyền kết quả đến thiết bị xuất chuẩn:wget -O - https://bootstrap.pypa.io/get-pip.py | sudo -H python3.6
ingomueller.net

16

Tôi đã có một câu trả lời trên stackoverflow.

Nguồn: https://stackoverflow.com/a/44254088/1812319

Giả sử bạn có một hệ thống chạy Ubuntu 16.04, 16.10 hoặc 17.04 và bạn muốn Python 3.6 là Python mặc định.

Nếu bạn đang sử dụng Ubuntu 16.04 LTS, bạn sẽ cần sử dụng PPA:

sudo add-apt-repository ppa:jonathonf/python-3.6  # (only for 16.04 LTS)

Sau đó, chạy phần sau (cái này hoạt động ngoài hộp vào ngày 16.10 và 17.04):

sudo apt update
sudo apt install python3.6
sudo apt install python3.6-dev
sudo apt install python3.6-venv
wget https://bootstrap.pypa.io/get-pip.py
sudo python3.6 get-pip.py
sudo ln -s /usr/bin/python3.6 /usr/local/bin/python3
sudo ln -s /usr/local/bin/pip /usr/local/bin/pip3

# Do this only if you want python3 to be the default Python
# instead of python2 (may be dangerous, esp. before 2020):
# sudo ln -s /usr/bin/python3.6 /usr/local/bin/python

Khi bạn đã hoàn thành tất cả các điều trên, mỗi lệnh shell sau sẽ chỉ ra Python 3.6.1(hoặc một phiên bản Python 3.6 mới hơn):

python --version   # (this will reflect your choice, see above)
python3 --version
$(head -1 `which pip` | tail -c +3) --version
$(head -1 `which pip3` | tail -c +3) --version

1
"Không có mô-đun có tên pip"
Rùa dễ thương

Hãy thử làm một sudo apt get updatesudo apt get upgradetrước khi chạy lệnh.
JChris

Cảm ơn đã giúp đỡ; Nhiều đánh giá cao. Trong khi khắc phục sự cố này, tôi đã đưa hệ thống của mình vào trạng thái trong vòng lặp đăng nhập và có vẻ như cách khắc phục dễ dàng nhất sẽ là định dạng lại / cài đặt lại.
Rùa dễ thương
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.