Як встановити python дистрибути


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. Але як я сам отримую деструкти? Хто-небудь може вказати мені архів для дистрибутивів? Я заглянув у /usr/lib/local/python2.5, /usr/lib/python2.5 тощо, і, як очікувалось, ніяких дистрибутивів не знайти.

Відповіді:


6

Найпростіший спосіб встановити setuptools, коли його ще немає, і ви не можете використовувати менеджер пакетів, - це завантажити ez_setup.py і запустити його за допомогою відповідного інтерпретатора Python. Це працює, навіть якщо у вас кілька версій Python: просто запустіть ez_setup.py один раз із кожним Python.

Змінити: зауважте, що останні версії Python 3 включають в дистрибутив набір інструментів, тому вам більше не потрібно встановлювати окремо. Згаданий тут сценарій актуальний лише для старих версій Python.


3
Дякую за відповідь, але це не спрацювало. Я отримую цю помилку "import _md5 ImportError: No module named _md5". Базова інсталяція python досить зіпсована, я думаю. Я піду з локальною установкою. Велике спасибі в будь-якому випадку.
Нео,

2
Синтаксис цього сценарію здається застарілим. Принаймні, він не буде працювати в python3.6, тому зараз не є чудовим рішенням.
Джміллс

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
Nicholi

7
Працював як привабливість 18.04
місця проживання

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

За пакетами.debian.org: "Цей пакет (python3-distutils-extra) надає додаткові функції для дистрибутивів та налаштувань Python." Отже, здавалося б, що distutils - це залежність distutils-extra. Чому встановлення distutils-extra вдалося б там, де встановлення distutils не вдалося, я не можу сказати.
Бен Амос,


12

Ви можете встановити python-distutilsпакет. sudo apt-get install python-distutilsповинно вистачити.


Не можу цього зробити. Це VPS-сервер, я не маю привілеїв sudo. Я думаю встановити локальний python. Або це, або я знаходжу архів distutils для python 2.5.
Нео,

3
Якщо ви встановлюєте локальний перемикач Python на 2.6 або 2.7, вони постачаються в distutilsкомплекті.
Manoj Govindan

2
Усі Python включають дистрибутиви з 1999 року. Тут схоже на одну з дурних ОС, яка розділяє стандартну бібліотеку на довільні пакети python та python-devel.
Ерік Араужо

7

Я натрапив на цю помилку на Beaglebone Black, використовуючи стандартний розподіл Angstrom. На даний момент на ньому працює Python 2.7.3, але не включає дистутіли. Рішенням для мене було встановити 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 заблокований (тобто пакети ОС розділяють дистрибутиви в пакеті python-devel), і ви не можете попросити системного адміністратора встановити відсутні фрагменти, тоді вам доведеться встановити власний Python. Для цього потрібні деякі заголовкові файли та інструментарій компілятора. Якщо у вас їх немає, спробуйте скомпілювати Python на ідентичному комп’ютері та просто скопіювати його.


-8

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

sudo apt-get install python2.6

Це має встановити найновіший пакет Python, а також distutils.


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