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?

user1994934
fonte

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
Tiago
fonte
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
Robert Lujo
fonte
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.

Dawngerpony
fonte
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.

gonjay
fonte
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...
[~]
Liquidificador
fonte
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
Sathish
fonte
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...
Cees Timmerman
fonte
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

Roger Vermeir
fonte