Як встановити pip для Python 3.6 на Ubuntu 16.10?


40

Я б хотів розпочати, зазначивши, що це питання може здатися повторюваним, але це не так. Усі запитання, які я бачив тут на Ask Ubuntu, стосувалися pip для Python 3, і я говорю про Python 3.6. Етапи, які використовуються назад, не працюють для Python 3.6.

  1. Я отримав чітке зображення Ubuntu 16.10 з офіційного магазину докерів .
  2. Біжи apt-get update
  3. Біжи apt-get install python3.6
  4. Біжи apt-get install python3-pip
  5. Біжи pip3 install requests bs4
  6. Біжи python3.6 script.py

Отримано ModuleNotFoundErrorнижче:

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

Python's та pip's у мене є:

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

pip
pip3
pip3.5

Запитання було
перетворено

Відповіді:


44

Ця відповідь передбачає, що ви python3.6встановили. Для python3.7заміни 3.6на 3.7. Для python3.8замінити 3.6з 3.8, але вона може також перший вимагати python3.8-distutilsпакет.

Установка з судо

Що стосується встановленняpip , використання curl(замість wget) уникає запису файлу на диск.

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

-HПрапор, очевидно , необхідно з sudoтого , щоб запобігти помилкам , наприклад, такі при установці піп для отримання оновленого інтерпретатора:

Поточний користувач не належить до каталогу "/home/someuser/.cache/pip/http" або його батьківського каталогу, а кеш-пам'ять вимкнено. Перевірте дозволи та власника цього каталогу. Якщо виконується піп із судо, вам може знадобитися прапор суда -Н.

Поточний користувач не є власником каталогу "/home/someuser/.cache/pip" або його батьківського каталогу, а кешування коліс було вимкнено. перевірити дозволи та власника цього каталогу. Якщо виконується піп із судо, вам може знадобитися прапор суда -Н.

Установка без судо

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

Іноді це може попередити, як-от:

ПОПЕРЕДЖЕННЯ. Колесо сценарію встановлено в '/home/ubuntu/.local/bin', який не є в PATH. Спробуйте додати цей каталог до PATH або, якщо ви хочете придушити це попередження, використовуйте --no-warn-script-location.

Перевірка

Після цього pip, pip3і pip3.6все це може бути , як очікується, точки до однієї і тієї ж мети:

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

Звичайно, ви також можете використовувати python3.6 -m pip.

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

5
Сценарій, здається, передбачає, що python3.6має працюючі інструменти налаштування / просту установку. З цієї причини це не працювало для мене. Я закінчив користуватисяcurl https://bootstrap.pypa.io/ez_setup.py -o - | python3.6 && python3.6 -m easy_install pip
FirefoxMetzger

Я встановив python3.6і python3.6-devз ppa:jonathonf/python-3.6Ubuntu 14.04. Я не впевнений, чи просто забув я setuptools або він зламався, але він не працював на той час.
FirefoxMetzger

Це жодним чином не підробляє вашу відповідь =) Це лише доповнення, якщо хтось зіткнеться з тією самою (сподіваємось, нечастою) проблемою.
FirefoxMetzger

@ABB Якщо я хочу pip -Vбути python 2.7та pip3 -V && pip3.6 -Vбути, python 3.6як мені це зробити?
Бенямін Джафарі

1
Ви також можете використовувати wget -O -потоковий результат для stdout:wget -O - https://bootstrap.pypa.io/get-pip.py | sudo -H python3.6
ingomueller.net

16

Я отримав відповідь про stackoverflow.

Джерело: https://stackoverflow.com/a/44254088/1812319

Припустимо, що у вас є система з управлінням Ubuntu 16.04, 16.10 або 17.04, і ви хочете, щоб Python 3.6 був Python за замовчуванням.

Якщо ви використовуєте Ubuntu 16.04 LTS, вам потрібно буде використовувати PPA:

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

Потім запустіть наступне (це працює нестандартно 16.10 та 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

Завершивши все вищезазначене, кожна з наступних команд оболонки повинна вказувати Python 3.6.1(або більш нову версію Python 3.6):

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
"Немає модуля з іменем піп"
Черепахи милі

Спробуйте зробити a sudo apt get updateі sudo apt get upgradeперед запуском команди.
JChris

Дякую за допомогу; цінується. Під час усунення несправностей це я перевів свою систему в стан, коли я перебуваю в циклі входу, і виглядає, що найпростішим виправленням буде переформатування / перевстановлення.
Черепахи милі
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.