como instalar distutils python


96

Acabei de conseguir algum espaço em um servidor VPS (rodando no ubuntu 8.04) e estou tentando instalar o django nele. O servidor tem python 2.5 instalado, mas acho que sua instalação não padrão. Quando executo o script de instalação do Django, recebo

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

Estou perplexo. Todos os artigos na internet me dizem como instalar módulos usando distutils. Mas como faço para obter distutils em si? Alguém pode me indicar o arquivo para distutils? Procurei em /usr/lib/local/python2.5, /usr/lib/python2.5 etc, e como esperado, não há distutils a serem encontrados.

Respostas:


7

A maneira mais simples de instalar o setuptools quando ele ainda não estiver lá e você não puder usar um gerenciador de pacotes é baixar ez_setup.py e executá-lo com o interpretador Python apropriado. Isso funciona mesmo se você tiver várias versões do Python: apenas execute ez_setup.py uma vez com cada Python.

Editar: observe que as versões recentes do Python 3 incluem ferramentas de instalação na distribuição, então você não precisa mais instalar separadamente. O script mencionado aqui é relevante apenas para versões antigas do Python.


3
Obrigado pela resposta, mas não funcionou. Recebo este erro "import _md5 ImportError: Nenhum módulo denominado _md5". A instalação básica do python é bem complicada, eu acho. Vou com a instalação local. Muito obrigado de qualquer maneira.
Neo

3
A sintaxe desse script parece desatualizada. No mínimo, ele não será executado em python3.6, portanto, não é uma ótima solução atualmente.
Jmills

1
@Jmills Python de 3.4 em diante inclui ferramentas de configuração, portanto, não há necessidade de executar esse script em versões recentes. A pergunta foi feita sobre Python 2.
Duncan

6
@Duncan Oh sim, diz Python2 - então este erro pode ser encontrado instalando Python3.6 no Ubuntu 16.04, foi isso que me trouxe aqui e sudo apt-get install python3-distutilsvai consertar. Mas sua nota esclarece a diferença de versão.
Jmills de

2
Parece que 14.04, 16.04 o têm "integrado", mas no 18.04 você precisa instalar o python3-distutilsFWIW ...
rogerdpack de

204

Eu sei que esta é uma pergunta antiga, mas acabei de encontrar o mesmo problema usando o Python 3.6 no Ubuntu e posso resolvê-lo usando o seguinte comando:

sudo apt-get install python3-distutils

7
Este pacote literalmente não existe no Ubuntu 16.04. packages.ubuntu.com/search?keywords=python3-distutils
Nicholi

7
Funcionou como um encanto em 18.04
habitats

2
Obtendo o erro E: o pacote 'python3-distutils' não tem nenhum candidato a instalação no Ubuntu 18.4
Ganesh

1
O mesmo que @Ganesh, has no installation candidateUbuntu 16.04.6 LTS
hugo blanc

1
É possível instalá-lo para a versão muito específica. Eu tentei com sudo apt-get install python3.9-distutilsdepois da saída para (...) python3-distutilsdisse, ele está atualizado na versão 3.6, embora eu tenha definido python3como 3.9. e funcionou
Lukas,

21

Se você não conseguir instalar com nenhum destes:

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

Em vez disso, tente isto:

sudo apt-get install python-distutils-extra

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


Estou recebendo um erro: Errors were encountered while processing: oracle-java11-installer-local E: Sub-process /usr/bin/dpkg returned an error code (1)
mLstudent33

mas minha java -versionaparência está boa: 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

Qual é a diferença entre python3-distutils-extra(no Ubuntu16.04) e python3-distutils(não é possível localizar em python3-distutils-extra)?
skytree de

Por packages.debian.org: "Este pacote (python3-distutils-extra) fornece funções adicionais para distutils e ferramentas de configuração do Python." Portanto, parece que distutils é uma dependência de distutils-extra. Por que instalar distutils-extra teria sucesso onde a instalação de distutils falha, eu não posso dizer.
Ben Amos

15

você pode usar sudo apt-get install python3-distutilscom permissão de root.

eu acredito que funcionou aqui


12

Você pode instalar o python-distutilspacote. sudo apt-get install python-distutilsdeve ser suficiente.


Não posso fazer isso. É um servidor VPS, não tenho privilégios de sudo. Estou pensando em instalar um python local. Ou isso, ou encontro o arquivo distutils para python 2.5.
Neo

3
Se você estiver instalando o Python local, mude para 2.6 ou 2.7. Eles vêm com o distutilspacote.
Manoj Govindan

2
Todos os Python incluem distutils desde 1999. Aqui parece um dos sistemas operacionais estúpidos que dividem a biblioteca padrão em pacotes arbitrários de python e python-devel.
Éric Araujo

7

Eu encontrei este erro em um Beaglebone Black usando a distribuição Angstrom padrão. Atualmente está executando o Python 2.7.3, mas não inclui distutils. A solução para mim foi instalar distutils. (Exigia privilégios su.)

    su
    opkg install python-distutils

Após essa instalação, o comando com erro anterior funcionou bem.

    python setup.py build

2

Se você estiver em um cenário em que está usando uma das versões mais recentes do Ubuntu (ou variantes como o Linux Mint), que vem com o Python 3.8, você NÃO será capaz de ter o Python3.7 distutils, alias não será capaz de usar pipou pipenvcom Python 3.7, consulte: Como instalar python-distutils para versões antigas de python

Obviamente, usar Python3.8 não é problema.


1

O módulo não encontrado provavelmente significa que os pacotes não estão instalados.

O Debian decidiu que distutils não é um pacote python principal, então não está incluído nas últimas versões dos sistemas operacionais debian e baseados em debian. Você deve ser capaz de fazer

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

0

Se o sistema Python estiver com borked (ou seja, os pacotes do sistema operacional dividem distutils em um pacote python-devel) e você não puder pedir a um administrador de sistema para instalar a peça que faltava, então você terá que instalar seu próprio Python. Requer alguns arquivos de cabeçalho e um conjunto de ferramentas do compilador. Se você não pode ter isso, tente compilar um Python em um computador idêntico e apenas copiá-lo.


0

Pesquisando todos os pacotes relacionados a python-distutils:

apt-cache search x

Recebo python3-distutils-extra - melhorias para o sistema de compilação Python3

Então tente:

sudo apt-get install python3-distutils-extra

-9

Você pode tentar instalar o Python 2.6,

sudo apt-get install python2.6

Isso deve instalar o Python mais recente e também o pacote distutils.


Eu não consigo fazer um sudo. Acho que terei que obter uma instalação local do Python.
Neo
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.