Python 3: ImportError “Nenhum módulo chamado Setuptools”


283

Estou tendo problemas com a instalação de pacotes no Python 3.

Eu sempre instalei pacotes com setup.py install. Mas agora, quando tento instalar o pacote ansicolors, recebo:

importerror "Nenhum módulo chamado Setuptools"

Não faço ideia do que fazer porque não tinha as ferramentas de instalação instaladas no passado. Ainda assim, consegui instalar muitos pacotes setup.py installsem o setuptools. Por que devo obter as ferramentas de instalação agora?

Não consigo nem instalar o setuptools porque tenho o Python 3.3 e o setuptools não suporta o Python 3.

Por que meu comando de instalação não funciona mais?

Respostas:


532

Seu setup.pyarquivo precisa setuptools. Alguns pacotes Python costumavam usar distutilspara distribuição, mas a maioria agora usa setuptoolsum pacote mais completo. Aqui está uma pergunta sobre as diferenças entre eles.

Para instalar setuptoolsno Debian:

sudo apt-get install python3-setuptools

Para uma versão mais antiga do Python (Python 2.x):

sudo apt-get install python-setuptools

1
obrigado por este post .. me ajudou lot..Many povos são advicing setuptools mas não é possível instal em py3.3..the distribuir funciona como um encanto
piggy

22
eu tive que instalá-lo com "python3" para fazê-lo funcionar:sudo apt-get install python3-setuptools
D.Steinel

1
Eu instalei python3 python3-pip python3-setuptoolse funcionou. Obrigado.
warchantua

3
Por alguma razão no Ubuntu 18.04, ele não funciona apt-get install python3-setuptools.
Loretoparisi 04/04/19

1
@loretoparisi Eu tenho esse mesmo problema, você encontrou uma solução para o ubuntu 18.04?
775 Scott

91

EDIT: Página oficial do setuptools dox :

Se você tiver o Python 2> = 2.7.9 ou o Python 3> = 3.4 instalado a partir do python.org, você já terá pip e setuptools, mas precisará atualizar para a versão mais recente:

No Linux ou OS X:

pip install -U pip setuptools 

No Windows:

python -m pip install -U pip setuptools

Portanto, o restante deste post provavelmente está obsoleto (por exemplo, alguns links não funcionam).

Distribute - é um fork do setuptools que "oferece suporte ao Python 3". Instruções de instalação para distribuir (setuptools) + pip:

curl -O http://python-distribute.org/distribute_setup.py
python distribute_setup.py
easy_install pip

Problema semelhante aqui .

UPDATE: Distribute parece estar obsoleto, ou seja, mesclado no Setuptools: Distribute é um fork obsoleto do projeto Setuptools. Desde o lançamento do Setuptools 0.7, o Setuptools e o Distribute foram mesclados e o Distribute não está mais sendo mantido. Todo esforço contínuo deve fazer referência ao projeto Setuptools e à documentação do Setuptools.

Você pode tentar com as instruções encontradas na página setuptools pypi (não testei isso, desculpe :():

wget https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py -O - | python
easy_install pip

1
Muito obrigado, não tenho certeza de como isso resolveu meu problema, mas resolveu. imediatamente! Eu estava tendo problemas sérios tentando instalar a distribuição. isso deve ter forçado de alguma forma a instalação, pois sudo pip install distributenão funcionaria. Meus problemas estão documentados em stackoverflow.com/questions/16846742/…
Deepend

1
Isso funciona em várias plataformas (Win), enquanto a resposta aceita não é aplicável. Obrigado!
fundead

Sério, esse cara precisa de mais crédito do que ele é dado. Ele acabou de salvar meu dia
Stephn_R

1
Os URLs não são mais válidos. Você poderia verificar?
Mebada

22

Eu estava fazendo isso dentro de uma virtualenv no Oracle Linux 6.4 usando python-2.6, para que as soluções baseadas em apt não fossem uma opção para mim, nem as idéias python-2.7. Minha correção foi atualizar minha versão das ferramentas de instalação instaladas pelo virtualenv:

pip install --upgrade setuptools

Depois disso, consegui instalar pacotes no virtualenv. Sei que esta pergunta já teve uma resposta selecionada, mas espero que esta resposta ajude outras pessoas na minha situação.


1
Observe que ele teve problemas "Não é possível remover entradas do arquivo inexistente ..." A adição de --ignore-installed ao comando acima corrigiu isso.
Kiki Jewell

10

pip uninstall setuptools

e depois:

pip install setuptools

Isso funciona para mim e corrige meu problema.


Isso funcionou para mim! De alguma forma, meu setuptools era a versão mais antiga 28.8. Essa desinstalação e reinstalação obrigou a atualização para a versão 48. E tudo funcionou bem.
Joseph Lee

4

O distributepacote fornece uma versão compatível com Python 3 de setuptools: http://pypi.python.org/pypi/distribute

Além disso, use pippara instalar os módulos. Ele encontra automaticamente dependências e as instala para você.

Funciona muito bem para mim com o seu pacote:

[~] pip --version                                                              
pip 1.2.1 from /usr/lib/python3.3/site-packages (python 3.3)
[~] sudo pip install ansicolors                                                
Downloading/unpacking ansicolors
  Downloading ansicolors-1.0.2.tar.gz
  Running setup.py egg_info for package ansicolors

Installing collected packages: ansicolors
  Running setup.py install for ansicolors

Successfully installed ansicolors
Cleaning up...
[~]

3

Windows 7:

Eu dei uma solução completa aqui para webdriver python selênio

1. Setup easy install (windows - simplified)
    a. download ez.setup.py (https://bootstrap.pypa.io/ez_setup.py) from 'https://pypi.python.org/pypi/setuptools'
    b. move ez.setup.py to C:\Python27\
    c. open cmd prompt
    d. cd C:\Python27\
    e. C:\Python27\python.exe ez.setup.py install

1

A ferramenta recomendada pelo PyPA para instalar e gerenciar pacotes Python é pip. pipestá incluído no Python 3.4 ( PEP 453 ), mas para versões mais antigas, veja como instalá- lo (no Windows):

Faça o download https://bootstrap.pypa.io/get-pip.py

>c:\Python33\python.exe get-pip.py
Downloading/unpacking pip
Downloading/unpacking setuptools
Installing collected packages: pip, setuptools
Successfully installed pip setuptools
Cleaning up...

>c:\Python33\Scripts\pip.exe install pymysql
Downloading/unpacking pymysql
Installing collected packages: pymysql
Successfully installed pymysql
Cleaning up...

0

Alguns anos atrás, herdei um projeto python (2.7.1) em execução no Django-1.2.3 e agora pedi para aprimorá-lo com possibilidades de QR. Obteve o mesmo problema e também não encontrou o pip ou o apt-get. Então resolvi de uma maneira totalmente diferente, mas fácil. Eu / bin / vi-ed o setup.py e alterei a linha "from setuptools import setup" para: "from distutils.core import setup" Isso fez isso por mim, então achei que deveria postar isso para outros usuários executando pythons antigos . Atenciosamente, Roger Vermeir

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.