Odpowiedzi:
To powinno sprawić, że zaczniesz działać z Python 3.7 na 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
Następnie wystarczy wywołać Python w ten sposób:
python3.7 ./yourScript.py
Oto zrzut ekranu wielu wersji Pythona współistniejących w kontenerze dokowanym i ich rozróżnienia:
Pip powinien również zostać zainstalowany przy tej instalacji. Aby zainstalować pakiety, użyj tego formatu:
pip3.7 --version
apt install libffi-dev
również uniknąć błędu obserwowania w kroku altinstall (Ubuntu 16.04 LTS):python ModuleNotFoundError: No module named '_ctypes'
Nie polecam ręcznego manipulowania przy instalacjach i ścieżkach kodu źródłowego. Użyjpyenv
i oszczędzaj sobie kłopotów.
Wszystko co musisz zrobić to:
pyenv
instalatoraNa przykład, aby zainstalować 3.7, sprawdź, które wersje są dostępne:
pyenv install -l | grep 3.7
Następnie uruchomić:
pyenv install 3.7.1
Teraz możesz wybrać wersję Python:
pyenv global 3.7.1
Spowoduje to przejście python
do punktu 3.7.1. Jeśli chcesz python systemowy, uruchom:
pyenv global system
Aby sprawdzić, które wersje Python są dostępne, uruchom pyenv versions
.
Możesz pobrać kod źródłowy ze strony www.python.org, skompilować i skompilować go ze źródła, a następnie:
1) Przygotuj ścieżkę do plików wykonywalnych Pythona PATH
i bibliotek do LD_LIBRARY_PATH
.
2) Zrób to, co zrobiłem, skompiluj i skompiluj to ze źródła i twórz dowiązania symboliczne do plików wykonywalnych w /usr/bin
. Możesz go nazwać, python37
aby odróżnić go od tego, python 3.5
który jest już zainstalowany.
Pierwsza metoda domyślnie użyje jej w twoim środowisku, podczas gdy przy drugiej, będziesz musiał określić ją za pomocą polecenia użytego dla dowiązania symbolicznego. Możesz najpierw użyć drugiej metody, zanim ustawisz ją jako domyślną, ponieważ python 3.7
jest ona wciąż w fazie rozwoju.