Я хотел бы запуститься путем указания, что этот вопрос может походить на дубликат, но это не. Все вопросы, на которых я видел здесь, Просят, чтобы Ubuntu расценивала зернышко для Python 3, и я говорю о Python 3.6. Шаги, используемые тогда, не работают на Python 3.6.
apt-get update
apt-get install python3.6
apt-get install python3-pip
pip3 install requests bs4
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
Я получил ответ на 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):blockquote >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
Этот ответ предполагает, что Вы имеете 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
для предотвращения ошибок, таких как следующее при установке зернышка для обновленного интерпретатора Python:
Каталог, '/home/someuser/.cache/pip/http' или его родительский каталог, не принадлежит текущему пользователю, и кэш был отключен. Проверьте полномочия и владельца того каталога. При выполнении зернышка с sudo можно хотеть флаг-H sudo.
Каталог, '/home/someuser/.cache/pip' или его родительский каталог, не принадлежит текущему пользователю, и кэширующиеся колеса был отключен. проверьте полномочия и владельца того каталога. При выполнении зернышка с sudo можно хотеть флаг-H 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)