как установить python distutils


90

У меня только что есть место на 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. Но как мне получить сам distutils? Кто-нибудь может указать мне архив для distutils? Я просмотрел /usr/lib/local/python2.5, /usr/lib/python2.5 и т.д., и, как и ожидалось, не было найдено никаких distutils.

Ответы:


6

Самый простой способ установить setuptools, когда его еще нет и вы не можете использовать диспетчер пакетов, - это загрузить ez_setup.py и запустить его с помощью соответствующего интерпретатора Python. Это работает, даже если у вас есть несколько версий Python: просто запустите ez_setup.py один раз с каждым Python.

Изменить: обратите внимание, что последние версии Python 3 включают в себя инструменты установки, поэтому вам больше не нужно устанавливать отдельно. Упомянутый здесь скрипт актуален только для старых версий Python.


3
Спасибо за ответ, но это не сработало. Я получаю эту ошибку «import _md5 ImportError: No module named _md5». Я полагаю, что базовая установка Python довольно неудачна. Я пойду с локальной установкой. В любом случае большое спасибо.
Neo

2
Синтаксис этого сценария кажется устаревшим. По крайней мере, он не будет работать в python3.6, так что в настоящее время это не лучшее решение.
Jmills

1
@Jmills Python начиная с версии 3.4 включает в себя инструменты установки, поэтому нет необходимости запускать этот скрипт в последних версиях. Был задан вопрос о Python 2.
Дункан

5
@Duncan О, да, там написано Python2 - так что с этой ошибкой можно столкнуться при установке Python3.6 на Ubuntu 16.04, вот что привело меня сюда, и sudo apt-get install python3-distutilsмы ее исправим. Но в вашей заметке проясняется разница версий.
Jmills

2
Похоже, что в 14.04 и 16.04 он "встроен", но в 18.04 вам нужно установить python3-distutilsFWIW ...
rogerdpack

202

Я знаю, что это старый вопрос, но я столкнулся с той же проблемой, используя Python 3.6 в Ubuntu, и я могу решить ее с помощью следующей команды:

sudo apt-get install python3-distutils

6
Этот пакет буквально не существует в Ubuntu 16.04. packages.ubuntu.com/search?keywords=python3-distutils
Николи,


2
Получение ошибки E: пакет 'python3-distutils' не имеет кандидата на установку в Ubuntu 18.4
Ганеш

1
То же, что @Ganesh, has no installation candidateUbuntu 16.04.6 LTS
hugo blanc

Я установил это для python3.7, но когда для python3.6 он показывает, что модуль не найден distutils.utils, что мне делать?
Сартак

20

Если вы не можете установить ни одно из них:

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,

В пакете packages.debian.org: «Этот пакет (python3-distutils-extra) предоставляет дополнительные функции для distutils и setuptools Python». Таким образом, кажется, что distutils является зависимостью distutils-extra. Я не могу сказать, почему установка distutils-extra прошла успешно там, где установка distutils не удалась.
Бен Амос


12

Вы можете установить python-distutilsпакет. sudo apt-get install python-distutilsдолжно хватить.


Не могу этого сделать. Это VPS-сервер, у меня нет прав sudo. Думаю установить локальный питон. Либо так, либо я нахожу архив distutils для python 2.5.
Neo

3
Если вы устанавливаете локальный переключатель Python на 2.6 или 2.7, они идут в distutilsкомплекте.
Манодж Говиндан

2
Все Python включают distutils с 1999 года. Здесь это похоже на одну из дурацких операционных систем, которые разбивают стандартную библиотеку на произвольные пакеты python и python-devel.
Эрик Араужо,

7

Я столкнулся с этой ошибкой на Beaglebone Black с использованием стандартного распределения Angstrom. В настоящее время он работает под управлением Python 2.7.3, но не включает distutils. Решением для меня была установка distutils. (Для этого требовались привилегии su.)

    su
    opkg install python-distutils

После этой установки команда, ранее выдававшая ошибку, работала нормально.

    python setup.py build

2

Если вы находитесь в сценарии, в котором вы используете одну из последних версий Ubuntu (или варианты, такие как Linux Mint), которая поставляется с Python 3.8, тогда вы НЕ сможете иметь Python3.7 distutils, псевдоним не сможет использовать pipили pipenvс Python 3.7, см .: Как установить python-distutils для старых версий Python

Очевидно, использование Python3.8 не проблема.


0

Если системный Python не работает (т.е. пакеты ОС разделяют distutils в пакете python-devel) и вы не можете попросить системного администратора установить недостающий фрагмент, вам придется установить свой собственный Python. Для этого требуются некоторые файлы заголовков и набор инструментов компилятора. Если у вас их нет, попробуйте скомпилировать Python на идентичном компьютере и просто скопируйте его.


-8

Вы можете попробовать установить Python 2.6,

sudo apt-get install python2.6

Это должно установить последнюю версию Python, а также пакет distutils.


Я не могу выполнить sudo. Думаю, мне нужно будет получить локальную установку Python.
Neo
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.