Как установить зернышко для Python 3.6 на Ubuntu 16.10?

Я хотел бы запуститься путем указания, что этот вопрос может походить на дубликат, но это не. Все вопросы, на которых я видел здесь, Просят, чтобы Ubuntu расценивала зернышко для 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 и зернышко я имею в машине:

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

pip
pip3
pip3.5
41
задан 2 March 2018 в 23:23

2 ответа

Я получил ответ на 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
16
ответ дан 23 November 2019 в 00:07

Этот ответ предполагает, что Вы имеете python3.6 установленный. Для python3.7, замена 3.6 с 3.7. Для python3.8, замена 3.6 с 3.8, но это может также сначала потребовать python3.8-distutils пакет.

Установка с sudo

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

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

-H флаг очевидно необходим с sudo для предотвращения ошибок, таких как следующее при установке зернышка для обновленного интерпретатора Python:

Каталог, '/home/someuser/.cache/pip/http' или его родительский каталог, не принадлежит текущему пользователю, и кэш был отключен. Проверьте полномочия и владельца того каталога. При выполнении зернышка с sudo можно хотеть флаг-H sudo.

Каталог, '/home/someuser/.cache/pip' или его родительский каталог, не принадлежит текущему пользователю, и кэширующиеся колеса был отключен. проверьте полномочия и владельца того каталога. При выполнении зернышка с sudo можно хотеть флаг-H sudo.

Установка без sudo

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

Это может иногда давать предупреждение, такое как:

ПРЕДУПРЕЖДЕНИЕ: колесо сценария установлено в '/home/ubuntu/.local/bin', который не находится на ПУТИ. Полагайте, что добавление этого каталога СОЕДИНЯЕТ КАНАЛОМ или, если Вы предпочитаете подавлять это предупреждение, используйте - 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)
45
ответ дан 23 November 2019 в 00:07

Другие вопросы по тегам:

Похожие вопросы: