Bagaimana cara menginstal pip untuk Python 3.6 di Ubuntu 16.10?

40

Saya ingin memulai dengan menunjukkan bahwa pertanyaan ini mungkin tampak seperti duplikat, tetapi sebenarnya tidak. Semua pertanyaan yang saya lihat di sini di Tanya Ubuntu tentang pip untuk Python 3 dan saya berbicara tentang Python 3.6. Langkah-langkah yang digunakan saat itu tidak bekerja untuk Python 3.6.

  1. Saya mendapat gambar Ubuntu 16.10 yang jelas dari toko docker resmi .
  2. Menjalankan apt-get update
  3. Menjalankan apt-get install python3.6
  4. Menjalankan apt-get install python3-pip
  5. Menjalankan pip3 install requests bs4
  6. Menjalankan python3.6 script.py

Di ModuleNotFoundErrorbawah ini:

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

Python dan pip yang saya miliki di mesin:

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

pip
pip3
pip3.5
JChris
sumber

Jawaban:

44

Jawaban ini mengasumsikan bahwa Anda telah python3.6menginstal. Untuk python3.7, ganti 3.6dengan 3.7. Untuk python3.8, ganti 3.6dengan 3.8, tetapi mungkin juga memerlukan python3.8-distutilspaket terlebih dahulu .

Instalasi dengan sudo

Berkenaan dengan menginstalpip , menggunakan curl(bukannya wget) menghindari menulis file ke disk.

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

The -Hbendera jelas diperlukan dengan sudountuk mencegah kesalahan seperti berikut ketika menginstal pip untuk python interpreter diperbarui:

Direktori '/home/someuser/.cache/pip/http' atau direktori induknya tidak dimiliki oleh pengguna saat ini dan cache telah dinonaktifkan. Silakan periksa izin dan pemilik direktori itu. Jika menjalankan pip dengan sudo, Anda mungkin menginginkan flag -H sudo.

Direktori '/home/someuser/.cache/pip' atau direktori induknya tidak dimiliki oleh pengguna saat ini dan roda caching telah dinonaktifkan. periksa izin dan pemilik direktori itu. Jika menjalankan pip dengan sudo, Anda mungkin menginginkan flag -H sudo.

Instalasi tanpa sudo

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

Ini terkadang memberikan peringatan seperti:

PERINGATAN: Roda skrip terinstal di '/ home /ubuntu/.local/bin' yang tidak ada di PATH. Pertimbangkan untuk menambahkan direktori ini ke PATH atau, jika Anda lebih suka menekan peringatan ini, gunakan --no-warn-script-location.

Verifikasi

Setelah ini, pip, pip3, dan pip3.6semua bisa diharapkan untuk menunjuk ke target yang sama:

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

Tentu saja Anda juga bisa menggunakannya python3.6 -m pip.

$ python3.6 -m pip -V
pip 18.0 from /usr/local/lib/python3.6/dist-packages (python 3.6)
Acumenus
sumber
5
Script tersebut sepertinya menganggap bahwa python3.6telah berfungsi setup-tools / instal mudah. Untuk alasan itu tidak berhasil untuk saya. Saya akhirnya menggunakancurl https://bootstrap.pypa.io/ez_setup.py -o - | python3.6 && python3.6 -m easy_install pip
FirefoxMetzger
Saya menginstal python3.6dan python3.6-devdari ppa:jonathonf/python-3.6pada Ubuntu 14.04. Saya tidak yakin apakah saya lupa setuptools atau jika rusak, tetapi tidak berfungsi pada saat itu.
FirefoxMetzger
Itu tidak memalsukan jawaban Anda dengan cara apa pun =) Itu hanya tambahan jika ada orang yang mengalami masalah yang sama (semoga tidak biasa).
FirefoxMetzger
@ABB Jika saya ingin pip -Vmenjadi python 2.7dan pip3 -V && pip3.6 -Vmenjadi python 3.6bagaimana saya bisa melakukannya?
Benyamin Jafari
1
Anda dapat menggunakan wget -O -untuk mengalirkan hasilnya ke stdout juga:wget -O - https://bootstrap.pypa.io/get-pip.py | sudo -H python3.6
ingomueller.net
16

Saya mendapat jawaban di stackoverflow.

Sumber: https://stackoverflow.com/a/44254088/1812319

Misalkan Anda memiliki sistem yang menjalankan Ubuntu 16.04, 16.10, atau 17.04, dan Anda ingin Python 3.6 menjadi Python default.

Jika Anda menggunakan Ubuntu 16.04 LTS, Anda harus menggunakan PPA:

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

Kemudian, jalankan yang berikut (ini berfungsi di luar kotak pada 16.10 dan 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

Ketika Anda telah menyelesaikan semua hal di atas, masing-masing perintah shell berikut harus menunjukkan Python 3.6.1(atau versi Python 3.6 yang lebih baru):

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
JChris
sumber
1
"No module bernama pip"
Turtles Are Cute
Coba lakukan sudo apt get updatedan sudo apt get upgradesebelum menjalankan perintah.
JChris
Terima kasih untuk bantuannya; sangat dihargai. Saat memecahkan masalah ini, saya membuat sistem saya dalam keadaan di mana saya berada di loop-login, dan sepertinya perbaikan yang paling mudah adalah memformat ulang / menginstal ulang.
Turtles Are Cute