วิธีการติดตั้ง python distutils


96

ฉันเพิ่งมีที่ว่างบนเซิร์ฟเวอร์ VPS (ทำงานบน ubuntu 8.04) และฉันกำลังพยายามติดตั้ง django บนมัน เซิร์ฟเวอร์ได้ติดตั้ง python 2.5 ไว้แล้ว แต่ฉันเดาว่าเป็นการติดตั้งที่ไม่ได้มาตรฐาน เมื่อฉันเรียกใช้สคริปต์การติดตั้งสำหรับ django ฉันจะได้รับ

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

ฉันนิ่งงัน บทความทั้งหมดบนอินเทอร์เน็ตบอกวิธีการติดตั้งโมดูลโดยใช้ distutils แต่ฉันจะเข้าใจผิดได้อย่างไร? ใครสามารถชี้ฉันไปที่ที่เก็บถาวรสำหรับความห่างไกล ฉันดูใน /usr/lib/local/python2.5, /usr/lib/python2.5 ฯลฯ และตามที่คาดไว้ไม่มีสิ่งที่ไม่สามารถพบได้

คำตอบ:


7

วิธีที่ง่ายที่สุดในการติดตั้ง setuptools เมื่อยังไม่มีและคุณไม่สามารถใช้โปรแกรมจัดการแพ็คเกจได้คือดาวน์โหลดez_setup.pyและเรียกใช้ด้วยตัวแปล Python ที่เหมาะสม ใช้งานได้แม้ว่าคุณจะมี Python หลายเวอร์ชันอยู่รอบ ๆ : เพียงแค่เรียกใช้ ez_setup.py หนึ่งครั้งกับ Python แต่ละตัว

แก้ไข: โปรดทราบว่า Python 3 เวอร์ชันล่าสุดมี setuptools ในการแจกจ่ายดังนั้นคุณจึงไม่จำเป็นต้องติดตั้งแยกกันอีกต่อไป สคริปต์ที่กล่าวถึงนี้เกี่ยวข้องกับ Python เวอร์ชันเก่าเท่านั้น


3
ขอบคุณสำหรับการตอบกลับ แต่ไม่ได้ผล ฉันได้รับข้อผิดพลาด "import _md5 ImportError: No module named _md5" การติดตั้งหลามขั้นพื้นฐานนั้นค่อนข้างแย่ฉันเดา ฉันจะติดตั้งในเครื่อง ขอบคุณมากอยู่แล้ว
นีโอ

3
ไวยากรณ์ของสคริปต์นั้นดูล้าสมัย อย่างน้อยที่สุดมันจะไม่ทำงานใน python3.6 ดังนั้นจึงไม่ใช่ทางออกที่ดีในปัจจุบัน
Jmills

1
@Jmills Python ตั้งแต่ 3.4 เป็นต้นไปมี setuptools ดังนั้นไม่จำเป็นต้องเรียกใช้สคริปต์นั้นในเวอร์ชันล่าสุด คำถามถูกถามเกี่ยวกับ Python 2
Duncan

6
@Duncan โอ้ใช่มันพูดว่า Python2 - ดังนั้นข้อผิดพลาดนี้สามารถพบได้ในการติดตั้ง Python3.6 บน Ubuntu 16.04 นั่นคือสิ่งที่ทำให้ฉันมาที่นี่และsudo apt-get install python3-distutilsจะแก้ไข แต่บันทึกของคุณชี้แจงความแตกต่างของเวอร์ชัน
Jmills

2
ดูเหมือนว่า 14.04, 16.04 ทั้งคู่มี "ในตัว" แต่ใน 18.04 คุณต้องติดตั้งpython3-distutilsFWIW ...
rogerdpack

204

ฉันรู้ว่านี่เป็นคำถามเก่า แต่ฉันเพิ่งเจอปัญหาเดียวกันโดยใช้ Python 3.6 ใน Ubuntu และฉันสามารถแก้ไขได้โดยใช้คำสั่งต่อไปนี้:

sudo apt-get install python3-distutils

7
แพ็คเกจนี้ไม่มีอยู่จริงใน Ubuntu 16.04 packages.ubuntu.com/search?keywords=python3-distutils
Nicholi

7
ทำงานอย่างมีเสน่ห์ในวันที่ 18.04 น.
อยู่อาศัย

2
รับข้อผิดพลาด E: แพ็คเกจ 'python3-distutils' ไม่มีตัวเลือกการติดตั้งใน Ubuntu 18.4
Ganesh

1
เหมือนกับ @Ganesh, has no installation candidateUbuntu 16.04.6 LTS
hugo blanc

1
เป็นไปได้ที่จะติดตั้งสำหรับเวอร์ชันที่เฉพาะเจาะจงมาก ฉันลองใช้sudo apt-get install python3.9-distutilsหลังจากผลลัพธ์สำหรับการ(...) python3-distutilsบอกมันเป็นเวอร์ชันล่าสุดที่ 3.6 แม้ว่าฉันจะตั้งค่าpython3เป็น 3.9 และนั่นได้ผล
Lukas

21

หากคุณไม่สามารถติดตั้งด้วยสิ่งเหล่านี้:

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

ลองสิ่งนี้แทน:

sudo apt-get install python-distutils-extra

อ้างอิง: https://groups.google.com/forum/#!topic/beagleboard/RDlTq8sMxro


ฉันได้รับข้อผิดพลาด: Errors were encountered while processing: oracle-java11-installer-local E: Sub-process /usr/bin/dpkg returned an error code (1)
mLstudent33

แต่java -versionหน้าตาของฉันโอเค: 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

อะไรคือความแตกต่างระหว่างpython3-distutils-extra(บน Ubuntu16.04) และpython3-distutils(ไม่พบบน python3-distutils-extra)
skytree

ต่อ package.debian.org: "แพ็กเกจนี้ (python3-distutils-extra) มีฟังก์ชันเพิ่มเติมสำหรับ distutils และ setuptools ของ Python" ดังนั้นมันจึงดูเหมือนว่า distutils เป็นที่พึ่งพาของ distutils-extra เหตุใดการติดตั้ง distutils-extra จึงประสบความสำเร็จในกรณีที่การติดตั้ง distutils ล้มเหลวฉันไม่สามารถพูดได้
Ben Amos


12

คุณสามารถติดตั้งpython-distutilsแพคเกจ sudo apt-get install python-distutilsควรพอเพียง


ไม่สามารถทำได้ เป็นเซิร์ฟเวอร์ VPS ฉันไม่มีสิทธิ์ sudo ฉันกำลังคิดจะติดตั้ง python ในเครื่อง ไม่ว่าจะเป็นหรือฉันพบไฟล์เก็บถาวรสำหรับ python 2.5
นีโอ

3
หากคุณกำลังติดตั้งสวิตช์ Python ในเครื่องเป็น 2.6 หรือ 2.7 จะมาพร้อมกับdistutilsชุด
Manoj Govindan

2
Python ทั้งหมดได้รวม distutils ไว้ตั้งแต่ปี 1999 ที่นี่ดูเหมือนว่าเป็นหนึ่งใน OS โง่ ๆ ที่แยกไลบรารีมาตรฐานออกเป็นแพ็คเกจ python และ python-devel โดยพลการ
Éric Araujo

7

ฉันพบข้อผิดพลาดนี้บน Beaglebone Black โดยใช้การแจกแจง Angstrom มาตรฐาน ขณะนี้กำลังใช้งาน Python 2.7.3 แต่ไม่รวม distutils วิธีแก้ปัญหาสำหรับฉันคือการติดตั้งสิ่งกีดขวาง (ต้องใช้สิทธิ์ su)

    su
    opkg install python-distutils

หลังจากการติดตั้งนั้นคำสั่ง error ก่อนหน้านี้ทำงานได้ดี

    python setup.py build

2

หากคุณอยู่ในสถานการณ์ที่คุณกำลังใช้ Ubuntu เวอร์ชันล่าสุด (หรือตัวแปรเช่น Linux Mint) ซึ่งมาพร้อมกับ Python 3.8 คุณจะไม่สามารถมี Python3.7 distutilsนามแฝงไม่สามารถใช้งานได้pipหรือpipenvใช้ Python 3.7 โปรดดู: วิธีติดตั้ง python-distutils สำหรับ python เวอร์ชันเก่า

เห็นได้ชัดว่าการใช้ Python3.8 นั้นไม่มีปัญหา


1

ไม่พบโมดูลซึ่งหมายความว่าไม่ได้ติดตั้งแพ็คเกจ

Debian ตัดสินใจว่า distutils ไม่ใช่แพ็กเกจ core python ดังนั้นจึงไม่รวมอยู่ในเวอร์ชันล่าสุดของระบบปฏิบัติการที่ใช้ debian และ debian คุณควรจะทำได้

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

0

หากระบบ Python ถูก borked (เช่นแพ็กเกจ OS แยก distutils ในแพ็คเกจ python-devel) และคุณไม่สามารถขอให้ sysadmin ติดตั้งชิ้นส่วนที่หายไปได้คุณจะต้องติดตั้ง Python ของคุณเอง มันต้องใช้ไฟล์ส่วนหัวและ toolchain ของคอมไพเลอร์ หากคุณไม่มีให้ลองรวบรวม Python บนคอมพิวเตอร์ที่เหมือนกันแล้วคัดลอก


0

โดยการค้นหาแพ็คเกจที่เกี่ยวข้องกับ python-distutils ทั้งหมด:

apt-cache search x

ฉันได้รับ python3-distutils-extra - การปรับปรุงระบบสร้าง Python3

จากนั้นลอง:

sudo apt-get install python3-distutils-extra

-9

คุณสามารถลองติดตั้ง Python 2.6

sudo apt-get install python2.6

สิ่งนี้ควรติดตั้ง Python ล่าสุดและแพคเกจ distutils ด้วย


ฉันทำ sudo ไม่ได้ ฉันเดาว่าฉันจะต้องได้รับการติดตั้ง Python ในเครื่อง
นีโอ
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.