cara menginstal distutils python

90

Saya baru saja mendapat ruang di server VPS (berjalan di ubuntu 8.04), dan saya mencoba menginstal django di atasnya. Server telah menginstal python 2.5, tetapi saya kira instalasi non standarnya. Ketika saya menjalankan skrip instalasi untuk django, saya mengerti

amitoj@ninja:~/Django-1.2.1$ python setup.py install
Traceback (most recent call last):
  File "setup.py", line 1, in <module>
    from distutils.core import setup
ImportError: No module named distutils.core

Saya bingung. Semua artikel di internet memberi tahu saya cara menginstal modul menggunakan distutils. Tapi bagaimana cara mendapatkan distutil itu sendiri? Adakah yang bisa mengarahkan saya ke arsip untuk distutils? Saya mencari di /usr/lib/local/python2.5, /usr/lib/python2.5 dll, dan seperti yang diharapkan tidak ada distutils yang ditemukan.

Neo
sumber

Jawaban:

6

Cara termudah untuk menginstal setuptools ketika belum ada dan Anda tidak dapat menggunakan manajer paket adalah dengan mengunduh ez_setup.py dan menjalankannya dengan interpreter Python yang sesuai. Ini berfungsi bahkan jika Anda memiliki beberapa versi Python: cukup jalankan ez_setup.py sekali dengan setiap Python.

Edit: perhatikan bahwa versi terbaru Python 3 menyertakan setuptools dalam distribusinya sehingga Anda tidak perlu lagi menginstal secara terpisah. Skrip yang disebutkan di sini hanya relevan untuk Python versi lama.

Duncan
sumber
3
Terima kasih atas balasannya, tetapi tidak berhasil. Saya mendapatkan kesalahan "import _md5 ImportError: Tidak ada modul bernama _md5". Instalasi python dasar cukup kacau kurasa. Saya akan menggunakan instalasi lokal. Terima kasih banyak.
Neo
2
Sintaks skrip itu sepertinya sudah ketinggalan zaman. Setidaknya itu tidak akan berjalan di python3.6, jadi bukan solusi yang bagus saat ini.
Jmills
1
@Jmills Python dari 3.4 dan seterusnya menyertakan setuptools jadi tidak perlu menjalankan skrip itu pada versi terbaru. Pertanyaannya tentang Python 2.
Duncan
5
@ Duncan Oh ya memang tertulis Python2 - jadi kesalahan ini dapat ditemukan saat menginstal Python3.6 di Ubuntu 16.04, itulah yang membawa saya ke sini, dan sudo apt-get install python3-distutilsakan memperbaikinya. Tetapi catatan Anda menjelaskan perbedaan versi.
Jmills
2
Tampaknya 14.04, 16.04 keduanya memiliki "built in" tetapi pada 18.04 Anda perlu menginstal python3-distutilsFWIW ...
rogerdpack
202

Saya tahu ini adalah pertanyaan lama, tetapi saya baru saja menemukan masalah yang sama menggunakan Python 3.6 di Ubuntu, dan saya dapat menyelesaikannya menggunakan perintah berikut:

sudo apt-get install python3-distutils
ettanany
sumber
6
Paket ini secara harfiah tidak ada di Ubuntu 16.04. packages.ubuntu.com/search?keywords=python3-distutils
Nicholi
7
Bekerja seperti pesona pada 18,04
habitat
2
Mendapatkan kesalahan E: Paket 'python3-distutils' tidak memiliki kandidat instalasi di Ubuntu 18.4
Ganesh
1
Sama seperti @Ganesh, has no installation candidateUbuntu 16.04.6 LTS
hugo blanc
Saya menginstal ini untuk python3.7 tetapi ketika untuk python3.6 itu menunjukkan tidak ada modul yang ditemukan distutils.utils, Apa yang harus saya lakukan?
Sarthak
20

Jika Anda tidak dapat menginstal dengan salah satu dari ini:

sudo apt-get install python-distutils
sudo apt-get install python3-distutils

Coba ini sebagai gantinya:

sudo apt-get install python-distutils-extra

Ref: https://groups.google.com/forum/#!topic/beagleboard/RDlTq8sMxro

Ben Amos
sumber
Saya mendapatkan kesalahan: Errors were encountered while processing: oracle-java11-installer-local E: Sub-process /usr/bin/dpkg returned an error code (1)
mLstudent33
tapi java -versionpenampilan saya baik-baik saja: java version "11.0.4" 2019-07-16 LTS Java(TM) SE Runtime Environment 18.9 (build 11.0.4+10-LTS) Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.4+10-LTS, mixed mode)
mLstudent33
Apa perbedaan antara python3-distutils-extra(di Ubuntu16.04) dan python3-distutils(tidak dapat ditemukan di python3-distutils-extra)?
skytree
Per packages.debian.org: "Paket ini (python3-distutils-extra) menyediakan fungsi tambahan untuk distutil dan alat setup Python." Jadi tampaknya distutils adalah ketergantungan dari distutils-extra. Mengapa menginstal distutils-extra akan berhasil ketika menginstal distutils gagal, saya tidak bisa mengatakan.
Ben Amos
15

Anda dapat menggunakan sudo apt-get install python3-distutilsdengan izin root.

Saya percaya itu berhasil di sini

Mohammad Heydari
sumber
12

Anda dapat menginstal python-distutilspaketnya. sudo apt-get install python-distutilssudah cukup.

Manoj Govindan
sumber
Tidak bisa melakukan itu. Ini adalah server VPS, saya tidak memiliki hak sudo. Saya sedang berpikir untuk memasang python lokal. Entah itu, atau saya menemukan arsip distutils untuk python 2.5.
Neo
3
Jika Anda menginstal Python lokal, ganti ke 2.6 atau 2.7 Mereka datang dengan distutilspaket.
Manoj Govindan
2
Semua Python telah menyertakan distutil sejak 1999. Di sini sepertinya salah satu OS bodoh yang membagi pustaka standar menjadi paket python dan python-devel sewenang-wenang.
Éric Araujo
7

Saya menemukan kesalahan ini pada Beaglebone Black menggunakan distribusi Angstrom standar. Saat ini menjalankan Python 2.7.3, tetapi tidak termasuk distutil. Solusi bagi saya adalah menginstal distutils. (Ini membutuhkan hak istimewa.)

    su
    opkg install python-distutils

Setelah instalasi itu, perintah kesalahan sebelumnya berjalan dengan baik.

    python setup.py build
mayypile
sumber
2

Jika Anda berada dalam skenario di mana Anda menggunakan salah satu versi terbaru Ubuntu (atau varian seperti Linux Mint), yang dilengkapi dengan Python 3.8, maka Anda TIDAK akan dapat memiliki Python3.7 distutils, alias tidak dapat menggunakan pipatau pipenvdengan Python 3.7, lihat: Bagaimana menginstal python-distutils untuk versi python lama

Jelas menggunakan Python3.8 tidak masalah.

Zoltan Fedor
sumber
0

Jika sistem Python macet (yaitu paket OS membagi distutil dalam paket python-devel) dan Anda tidak dapat meminta sysadmin untuk menginstal bagian yang hilang, maka Anda harus menginstal Python Anda sendiri. Ini membutuhkan beberapa file header dan toolchain kompiler. Jika Anda tidak dapat memilikinya, coba kompilasi Python di komputer yang identik dan salin saja.

Éric Araujo
sumber
-8

Anda dapat mencoba menginstal Python 2.6,

sudo apt-get install python2.6

Ini harus menginstal paket Python dan juga distutils terbaru.

sheki
sumber
Saya tidak bisa melakukan sudo. Saya kira, saya harus mendapatkan instalasi lokal Python.
Neo