Cara terbaik untuk menjalankan python 3.7 pada Ubuntu 16.04 yang dilengkapi dengan python 3.5

17

Saya ingin menghindari backport, sepertinya selalu mengacaukan paket saya.

Jadi saya berpikir alat seperti conda / virtualenv / mungkin bahkan buruh pelabuhan dapat membantu. Apa cara paling sederhana / paling bersih untuk bekerja dengan python 3.7 pada sistem saya?

benji
sumber
1
Lihat ke dalam pyenv
Naftuli Kay

Jawaban:

33

Ini akan membantu Anda menjalankan dan menjalankan dengan Python 3.7 di 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

Maka Anda hanya akan memanggil Python seperti itu:

python3.7 ./yourScript.py

Ini adalah tangkapan layar dari beberapa versi Python yang ada bersama di wadah buruh pelabuhan dan bagaimana mereka dapat dibedakan:

Cara memanggil Python versi berbeda

Pip seharusnya sudah diinstal dengan instalasi ini juga. Untuk menginstal paket menggunakan format ini:

pip3.7 --version
Sn3akyP3t3
sumber
1
Ini bekerja seperti pesona. Saya dapat menginstal python3.7. satu-satunya peringatan adalah menggunakan sudo make altinstall karena akses direktori tidak ke pengguna normal. semua apt-get dipasang menggunakan sudo juga. Terima kasih banyak untuk berbagi info.
Doogle
Jawaban yang diterima bekerja dengan baik untuk saya, dengan satu peringatan; Saya apt install libffi-devjuga harus menghindari kesalahan follwing pada langkah altinstall (Ubuntu 16.04 LTS):python ModuleNotFoundError: No module named '_ctypes'
moshisushi
@ moshisushi Saya mengalami masalah itu juga ketika saya bekerja menuju resolusi. Untuk alasan itu, saya sudah memasukkan libffi-dev dalam instalasi awal.
Sn3akyP3t3
1
@Doogle Prefixed perintah dengan sudo jika diperlukan. Terima kasih telah menunjukkannya. Langkah-langkah ini ditarik dari langkah-langkah pembuatan wadah Docker saya yang diasumsikan pengguna root.
Sn3akyP3t3
2

Saya tidak akan merekomendasikan secara manual mengutak-atik instalasi dan jalur kode sumber. Gunakanpyenv dan selamatkan masalahnya sendiri.

Yang harus Anda lakukan adalah:

  • Jalankan pyenvpenginstal
  • Ikuti petunjuk
  • Instal versi Python yang Anda butuhkan
  • Pilih versi Python yang ingin Anda gunakan untuk direktori tertentu, atau secara global

Misalnya, untuk menginstal 3.7, periksa versi mana yang tersedia:

pyenv install -l | grep 3.7

Lalu lari:

pyenv install 3.7.1

Sekarang, Anda dapat memilih versi Python Anda:

pyenv global 3.7.1

Ini mengalihkan Anda pythonke titik 3.7.1. Jika Anda menginginkan sistem python, jalankan:

pyenv global system

Untuk memeriksa versi Python yang tersedia, jalankan pyenv versions.

slhck
sumber
0

Anda dapat mengunduh kode sumber dari www.python.org, mengkompilasi dan membangunnya dari sumber, dan kemudian:

1) Tambahkan path ke executable python ke PATHdan ke perpustakaan LD_LIBRARY_PATH.

2) Lakukan apa yang saya lakukan dan kompilasi dan bangun dari sumber dan buat symlink ke executable /usr/bin. Anda dapat memanggilnya python37untuk membedakannya dari python 3.5yang sudah diinstal.

Metode pertama akan menggunakannya di lingkungan Anda secara default sedangkan dengan yang kedua aktif, Anda harus menentukannya dengan perintah yang Anda gunakan untuk symlink. Anda mungkin ingin menggunakan metode kedua terlebih dahulu sebelum menjadikannya default karena python 3.7masih dalam pengembangan.

Nasir Riley
sumber