Ответы:
Это должно заставить вас работать с 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, сосуществующих в док-контейнере, и того, как их можно различить:
Пип должен быть установлен с этой установкой также. Для установки пакетов используйте этот формат:
pip3.7 --version
apt install libffi-dev
избегать следующей ошибки на этапе altinstall (Ubuntu 16.04 LTS):python ModuleNotFoundError: No module named '_ctypes'
Я не рекомендовал бы вручную возиться с установками исходного кода и путями. Используйте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. Если вы хотите системный python, запустите:
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
он все еще находится в разработке.