cách cài đặt bản phân phối python


90

Tôi vừa có một số dung lượng trên máy chủ VPS (chạy trên ubuntu 8.04) và tôi đang cố gắng cài đặt django trên đó. Máy chủ đã cài đặt python 2.5, nhưng tôi đoán cài đặt không chuẩn của nó. Khi tôi chạy tập lệnh cài đặt cho django, tôi nhận được

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

Tôi bối rối. Tất cả các bài báo trên internet đều cho tôi biết cách cài đặt mô-đun bằng cách sử dụng distutils. Nhưng làm thế nào để tôi có được bản chính của distutils? Có ai có thể chỉ tôi đến kho lưu trữ cho bản phân phối không? Tôi đã tìm trong /usr/lib/local/python2.5, /usr/lib/python2.5, v.v. và như mong đợi là không có bản phân phối nào được tìm thấy.

Câu trả lời:


6

Cách đơn giản nhất để cài đặt setuptools khi nó chưa có và bạn không thể sử dụng trình quản lý gói là tải xuống ez_setup.py và chạy nó với trình thông dịch Python thích hợp. Điều này hoạt động ngay cả khi bạn có nhiều phiên bản Python xung quanh: chỉ cần chạy ez_setup.py một lần với mỗi Python.

Chỉnh sửa: lưu ý rằng các phiên bản gần đây của Python 3 bao gồm các công cụ thiết lập trong bản phân phối, do đó bạn không cần phải cài đặt riêng nữa. Tập lệnh được đề cập ở đây chỉ liên quan đến các phiên bản cũ của Python.


3
Cảm ơn vì đã trả lời, nhưng nó không hoạt động. Tôi gặp lỗi "import _md5 ImportError: Không có mô-đun nào có tên _md5". Tôi đoán là quá trình cài đặt python cơ bản khá rắc rối. Tôi sẽ cài đặt cục bộ. Cảm ơn rất nhiều anyway.
Neo

2
Cú pháp của tập lệnh đó dường như đã lỗi thời. Ít nhất thì nó sẽ không chạy trong python3.6, vì vậy hiện tại không phải là một giải pháp tuyệt vời.
Jmills

1
@Jmills Python từ 3.4 trở đi bao gồm các công cụ thiết lập nên không cần chạy tập lệnh đó trên các phiên bản gần đây. Câu hỏi được hỏi về Python 2.
Duncan

5
@Duncan Ồ vâng nó nói Python2 - vì vậy lỗi này có thể gặp phải khi cài đặt Python3.6 trên Ubuntu 16.04, đó là điều đã đưa tôi đến đây và sudo apt-get install python3-distutilssẽ sửa nó. Nhưng ghi chú của bạn làm rõ sự khác biệt về phiên bản.
Jmills

2
Dường như 14.04, 16.04 cả hai đều có nó "được xây dựng trong" nhưng trong 18,04 bạn cần phải cài đặt python3-distutilsFWIW ...
rogerdpack

202

Tôi biết đây là một câu hỏi cũ, nhưng tôi chỉ gặp vấn đề tương tự khi sử dụng Python 3.6 trong Ubuntu và tôi có thể giải quyết nó bằng cách sử dụng lệnh sau:

sudo apt-get install python3-distutils

6
Gói này thực sự không tồn tại trong Ubuntu 16.04. packages.ubuntu.com/search?keywords=python3-distutils
Nicholi

7
Làm việc như một sự quyến rũ vào ngày 18.04
môi trường sống

2
Gặp lỗi E: Gói 'python3-distutils' không có ứng cử viên cài đặt nào trong Ubuntu 18.4
Ganesh

1
Tương tự như @Ganesh, has no installation candidateUbuntu 16.04.6 LTS
hugo blanc

Tôi đã cài đặt ứng dụng này cho python3.7 nhưng khi đối với python3.6, nó không hiển thị mô-đun tìm thấy distutils.utils, tôi nên làm gì?
Sarthak

20

Nếu bạn không thể cài đặt bằng một trong hai cách sau:

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

Hãy thử cái này thay thế:

sudo apt-get install python-distutils-extra

Tham khảo: https://groups.google.com/forum/#!topic/beagleboard/RDlTq8sMxro


Tôi nhận được một lỗi: Errors were encountered while processing: oracle-java11-installer-local E: Sub-process /usr/bin/dpkg returned an error code (1)
mLstudent33

nhưng tôi java -versionvẻ ổn: 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

Sự khác biệt giữa python3-distutils-extra(trên Ubuntu16.04) và python3-distutils(không thể định vị trên python3-distutils-extra) là gì?
skytree

Theo package.debian.org: "Gói này (python3-distutils-extra) cung cấp các chức năng bổ sung cho các phân phối và setuptools của Python." Vì vậy, có vẻ như distutils là một phụ thuộc của distutils-extra. Tại sao cài đặt distutils-extra sẽ thành công trong khi cài đặt distutils không thành công, tôi không thể nói.
Ben Amos

15

bạn có thể sử dụng sudo apt-get install python3-distutilsbằng quyền root.

tôi tin rằng nó đã hoạt động ở đây


12

Bạn có thể cài đặt python-distutilsgói. sudo apt-get install python-distutilsnên đủ.


Không thể làm điều đó. Nó là một máy chủ VPS, tôi không có đặc quyền sudo. Tôi đang nghĩ đến việc cài đặt một python cục bộ. Hoặc là, hoặc tôi tìm thấy kho lưu trữ distutils cho python 2.5.
Neo

3
Nếu bạn đang cài đặt Python cục bộ, hãy chuyển sang phiên bản 2.6 hoặc 2.7 Chúng đi distutilskèm với gói.
Manoj Govindan

2
Tất cả Python đều bao gồm các bản phân phối từ năm 1999. Ở đây có vẻ như một trong những hệ điều hành ngu ngốc chia thư viện chuẩn thành các gói python và python-devel tùy ý.
Éric Araujo

7

Tôi đã gặp lỗi này trên Beaglebone Black bằng cách sử dụng phân phối Angstrom tiêu chuẩn. Nó hiện đang chạy Python 2.7.3, nhưng không bao gồm các bản phân phối. Giải pháp cho tôi là cài đặt distutils. (Nó yêu cầu đặc quyền su.)

    su
    opkg install python-distutils

Sau khi cài đặt đó, lệnh bị lỗi trước đó chạy tốt.

    python setup.py build

2

Nếu bạn đang ở trong trường hợp bạn đang sử dụng một trong các phiên bản Ubuntu mới nhất (hoặc các biến thể như Linux Mint), một phiên bản đi kèm với Python 3.8, thì bạn sẽ KHÔNG thể có Python3.7 distutils, bí danh không thể sử dụng piphoặc pipenvvới Python 3.7, hãy xem: Cách cài đặt python-distutils cho các phiên bản python cũ

Rõ ràng việc sử dụng Python3.8 không có vấn đề gì.


0

Nếu Python hệ thống bị khóa (tức là các gói hệ điều hành chia nhỏ các bản phân phối trong một gói python-devel) và bạn không thể yêu cầu một sysadmin cài đặt phần còn thiếu, thì bạn sẽ phải cài đặt Python của riêng mình. Nó yêu cầu một số tệp tiêu đề và một chuỗi công cụ biên dịch. Nếu bạn không thể có những thứ đó, hãy thử biên dịch Python trên một máy tính giống hệt nhau và chỉ cần sao chép nó.


-8

Bạn có thể thử cài đặt Python 2.6,

sudo apt-get install python2.6

Điều này sẽ cài đặt Python mới nhất và gói distutils.


Tôi không thể làm một sudo. Tôi đoán, tôi sẽ phải cài đặt Python cục bộ.
Neo
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.