Как установить Python 3.6 на Ubuntu 19.04?
Я недавно установил Ubuntu 19.04
у которого есть Python 3.7
по умолчанию. Мне нужно работать над несколькими проектами, которые используют Python 3.6
,
Есть ли способ установить его на Disco Dingo?
Я пробовал, который работает на 16.04
milano@milano-desktop:~$ sudo add-apt-repository ppa:jonathonf/python-3.6
...
milano@milano-desktop:~$ sudo apt-get install python3.6
Reading package lists... Done
Building dependency tree
Reading state information... Done
Note, selecting 'python3.6-2to3' for regex 'python3.6'
Note, selecting 'libpython3.6-stdlib' for regex 'python3.6'
The following packages were automatically installed and are no longer required:
fonts-liberation2 fonts-opensymbol gir1.2-geocodeglib-1.0
gir1.2-gst-plugins-base-1.0 gir1.2-gstreamer-1.0 gir1.2-gudev-1.0
gir1.2-udisks-2.0 grilo-plugins-0.3-base gstreamer1.0-gtk3 guile-2.2-libs
libboost-date-time1.67.0 libboost-filesystem1.67.0 libboost-iostreams1.67.0
libboost-locale1.67.0 libcdr-0.1-1 libclucene-contribs1v5 libclucene-core1v5
libcmis-0.5-5v5 libcolamd2 libcurl4 libdazzle-1.0-0 libe-book-0.1-1 libeot0
libepubgen-0.1-1 libetonyek-0.1-1 libevent-2.1-6 libfreerdp-client2-2
libfreerdp2-2 libgc1c2 libgee-0.8-2 libgom-1.0-0 libgpgmepp6 libgpod-common
libgpod4 liblangtag-common liblangtag1 liblirc-client0 liblua5.3-0
libmediaart-2.0-0 libminiupnpc17 libmspub-0.1-1 libodfgen-0.1-1
liborcus-0.14-0 libqqwing2v5 libraw19 librevenge-0.0-0 libsgutils2-2
libsuitesparseconfig5 libvncclient1 libwinpr2-2 libxmlsec1 libxmlsec1-nss
lp-solve media-player-info python3-mako python3-markupsafe syslinux
syslinux-common syslinux-legacy usb-creator-common
Use 'sudo apt autoremove' to remove them.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
milano@milano-desktop:~$ python3.6
Command 'python3.6' not found, did you mean:
command 'python3.8' from deb python3.8-minimal (3.8.0~a3-2)
command 'python3.7' from deb python3.7-minimal (3.7.3-2)
Try: sudo apt install <deb name>
вкладка python3 +
milano@milano-desktop:~$ python3
python3 python3.7 python3.7m python3m
deadsnakes
milano@milano-desktop:~$ sudo add-apt-repository ppa:deadsnakes/ppa
This PPA contains more recent Python versions packaged for Ubuntu.
Disclaimer: there's no guarantee of timely updates in case of security problems or other issues. If you want to use them in a security-or-otherwise-critical environment (say, on a production server), you do so at your own risk.
Update Note
===========
Please use this repository instead of ppa:fkrull/deadsnakes.
Reporting Issues
================
Issues can be reported in the master issue tracker at:
https://github.com/deadsnakes/issues/issues
Supported Ubuntu and Python Versions
====================================
Python 3.6 - Ubuntu 14.04, Ubuntu 16.04
For Ubuntu up to 18.04, there's also packages for old Python versions from 2.3 to 3.4.
The packages may also work on other versions of Ubuntu or Debian, but that is not tested or supported.
Third-Party Python Modules
==========================
Python modules in the official Ubuntu repositories are packaged to work with the Python interpreters from the official repositories. Accordingly, they generally won't work with the Python interpreters from this PPA. As an exception, pure-Python modules for Python 3 will work, but any compiled extension modules won't.
To install 3rd-party Python modules, you should use the common Python packaging tools. For an introduction into the Python packaging ecosystem and its tools, refer to the Python Packaging User Guide:
https://packaging.python.org/installing/
Sources
=======
The package sources are available at:
https://github.com/deadsnakes/
More info: https://launchpad.net/~deadsnakes/+archive/ubuntu/ppa
Press [ENTER] to continue or Ctrl-c to cancel adding it.
Hit:1 http://cz.archive.ubuntu.com/ubuntu disco InRelease
Ign:2 http://ppa.launchpad.net/deadsnakes/ppa/ubuntu disco InRelease
Get:3 http://cz.archive.ubuntu.com/ubuntu disco-updates InRelease [88,4 kB]
Hit:4 http://security.ubuntu.com/ubuntu disco-security InRelease
Hit:5 http://cz.archive.ubuntu.com/ubuntu disco-backports InRelease
Ign:6 http://ppa.launchpad.net/jonathonf/python-3.6/ubuntu disco InRelease
Err:7 http://ppa.launchpad.net/deadsnakes/ppa/ubuntu disco Release
404 Not Found [IP: 91.189.95.83 80]
Err:8 http://ppa.launchpad.net/jonathonf/python-3.6/ubuntu disco Release
404 Not Found [IP: 91.189.95.83 80]
Reading package lists... Done
E: The repository 'http://ppa.launchpad.net/deadsnakes/ppa/ubuntu disco Release' does not have a Release file.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.
E: The repository 'http://ppa.launchpad.net/jonathonf/python-3.6/ubuntu disco Release' does not have a Release file.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.
2 ответа
Да, поскольку @furas говорит, что вы можете загрузить исходный код python 3.6.8 или 3.6.7 (это прямая ссылка на исходные файлы.xz, если вы хотите в другом формате, посетите 3.6.8 или 3.6.7).
это некоторое содержание из README.rst
файл источника
Build Instructions
------------------
On Unix, Linux, BSD, macOS, and Cygwin::
./configure
make
make test
sudo make install
This will install Python as python3.
Если вы хотите, чтобы python3.6 устанавливался как python3.6(не python3) в вашей системе, вот несколько других рекомендаций README.rst
файл
For example, if you want to install Python 2.7, 3.5, and 3.6 with 3.6 being the
primary version, you would execute ``make install`` in your 3.6 build directory
and ``make altinstall`` in the others.
Спасибо...
Не возитесь с вашей системой.
Ubuntu 19.04 как Python 3.7 в соответствии со стандартом, поэтому, если вы хотите работать с Python 3.6.*, Вам следует установить conda и создать среду с конкретной версией Python:
conda create --name py36 -c conda-forge python=3.6.* pip
Конечно, вы также можете создать другую виртуальную среду и использовать pip.
Или вы можете пойти в докер.
Если вы действительно хотите изменить версию операционной системы, я бы рекомендовал использовать NixOS.
Нет необходимости компилировать из исходного кода, просто скачайте и установите deb-пакеты python 3.6 с зависимостями вручную:
wget http://archive.ubuntu.com/ubuntu/pool/main/p/python3.6/libpython3.6-minimal_3.6.7-1~18.10_amd64.deb
dpkg -i libpython3.6-minimal_3.6.7-1~18.10_amd64.deb
wget http://archive.ubuntu.com/ubuntu/pool/main/p/python3.6/libpython3.6-stdlib_3.6.7-1~18.10_amd64.deb
dpkg -i libpython3.6-stdlib_3.6.7-1~18.10_amd64.deb
wget http://archive.ubuntu.com/ubuntu/pool/main/p/python3.6/python3.6-minimal_3.6.7-1~18.10_amd64.deb
dpkg -i python3.6-minimal_3.6.7-1~18.10_amd64.deb
wget http://archive.ubuntu.com/ubuntu/pool/main/p/python3.6/python3.6_3.6.7-1~18.10_amd64.deb
dpkg -i python3.6_3.6.7-1~18.10_amd64.deb
Этого достаточно для запуска python 3.6. Тем не менее, некоторые модули могут не работать, например, Pycurl, в результате я не нашел решения.ModuleNotFoundError возникает при попытке импорта, ошибка ImportError возникает при попытке установить pycurl: невозможно импортировать имя 'sysconfig', поскольку пакет python3-distutils установлен из версии 3.7 и является несовместимым. Установка вручную с версии 3.6 нарушает зависимости версии 3.7 и в любом случае apt попытается это исправить.