Я бы хотел избежать бэкпортов, они всегда портят мои пакеты.
Итак, я подумал, что такие инструменты, как conda / virtualenv /, возможно, даже докер могут помочь. Какой самый простой / самый чистый способ работы с python 3.7 в моей системе?
Это должно помочь вам начать работу с Python 3.7 на Ubuntu 16.04.
# Install requirements
sudo apt-get install -y build-essential \
checkinstall \
libreadline-gplv2-dev \
libncursesw5-dev \
libssl-dev \
libsqlite3-dev \
tk-dev \
libgdbm-dev \
libc6-dev \
libbz2-dev \
zlib1g-dev \
openssl \
libffi-dev \
python3-dev \
python3-setuptools \
wget
# Prepare to build
mkdir /tmp/Python37
cd /tmp/Python37
# Pull down Python 3.7, build, and install
wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tar.xz
tar xvf Python-3.7.0.tar.xz
cd /tmp/Python37/Python-3.7.0
./configure
sudo make altinstall
Тогда вы просто вызовете Python так:
python3.7 ./yourScript.py
Это снимок экрана нескольких версий Python, сосуществующих в контейнере докеров, и то, как их можно отличить:
Pip также должен был быть установлен с этой установкой. Для установки пакетов используйте этот формат:
pip3.7 --version
Я бы не рекомендовал вручную возиться с установками и путями исходного кода. Использовать pyenv
и избавь себя от неприятностей.
Все, что вам нужно сделать, это:
pyenv
установщикНапример, чтобы установить 3.7, проверьте, какие версии доступны:
pyenv install -l | grep 3.7
Затем запустите:
pyenv install 3.7.1
Теперь вы можете выбрать свою версию Python:
pyenv global 3.7.1
Это переключает ваш python
указать на 3.7.1. Если вам нужен системный питон, запустите:
pyenv global system
Чтобы проверить, какие версии Python доступны, запустите pyenv versions
.
Вы можете загрузить исходный код с www.python.org, скомпилировать и собрать его из исходного кода, а затем либо:
1) Добавьте путь к исполняемым файлам python к PATH
и библиотеки LD_LIBRARY_PATH
.
2) Сделайте то, что я сделал, скомпилируйте и соберите его из источника и сделайте символические ссылки на исполняемые файлы в /usr/bin
. Вы можете назвать это python37
отличить его от python 3.5
который уже установлен.
Первый метод будет использовать его в вашей среде по умолчанию, тогда как второй метод будет указывать его с помощью команды, которую вы использовали для символической ссылки. Вы можете сначала использовать второй метод, прежде чем сделать его по умолчанию как python 3.7
все еще в разработке.