É necessário instalar o urllib2 para Python 3.5.1

100

Estou executando o Python 3.5.1 para Mac. Eu quero usar o urllib2módulo. Tentei instalá-lo, mas me disseram que ele foi dividido em urllib.requeste urllib.errorpara o Python 3.

Meu comando (em execução no diretório bin do framework por enquanto, porque não está no meu caminho):

sudo ./pip3 install urllib.request

Retorna este:

Could not find a version that satisfies the requirement urllib.request (from versions: )
No matching distribution found for urllib.request

Recebi o mesmo erro antes, quando tentei instalar urllib2de uma só vez.

Eamonn Gormley
fonte
2
Você não pode simplesmente importar urllib.requestem seu programa Python?
michaelpri
3
urllib.request faz parte da biblioteca padrão e não precisa de instalação.
Daniel Roseman
urllib faz parte da biblioteca std, mas contém apenas o pacote de análise, não consegui encontrar a solicitação nisso ....
Devendra Bhat

Respostas:

169

AVISO : Pesquisas de segurança encontraram vários pacotes envenenados no PyPI , incluindo um pacote chamadourllib, que irá 'ligar para casa' quando instalado. Se você usou pip install urllibalgum tempo depois de junho de 2017, remova esse pacote o mais rápido possível .

Você não pode, e você não precisa.

urllib2é o nome da biblioteca incluída no Python 2. Você pode usar a urllib.requestbiblioteca incluída no Python 3, em vez disso. A urllib.requestbiblioteca funciona da mesma forma que urllib2no Python 2. Como ela está incluída, você não precisa instalá-la.

Se estiver seguindo um tutorial que diz para você usar urllib2, você descobrirá que terá mais problemas. Seu tutorial foi escrito para Python 2, não Python 3. Encontre um tutorial diferente ou instale o Python 2.7 e continue seu tutorial nessa versão. Você descobrirá que urllib2vem com essa versão.

Como alternativa, instale a requestsbiblioteca para uma API de nível superior e mais fácil de usar. Funcionará em Python 2 e 3.

Martijn Pieters
fonte
24
Obrigado, então eu poderia usar:import urllib.request as urllib2
MewX de
então pip não é moderado contra malware?
igor
3
@igor: pipé uma ferramenta de linha de comando que pode descobrir e carregar pacotes de qualquer lugar. PyPI.org, o índice de pacote padrão pipirá para, não é moderado. A Python Software Foundation é uma organização dirigida por voluntários e não pode nem mesmo começar a moderar a quantidade de código envolvida.
Martijn Pieters
Obrigado pelo aviso
B Furtado
28

De acordo com a documentação :

Nota O módulo urllib2 foi dividido em vários módulos no Python 3 chamados urllib.requeste urllib.error. A ferramenta 2to3 irá adaptar automaticamente as importações ao converter suas fontes para Python 3.

Portanto, parece que é impossível fazer o que você quer, mas você pode usar as funções apropriadas do python3 em urllib.request.

Ilya V. Schurov
fonte
6

No Python 3, urllib2foi substituído por dois módulos integrados chamados urllib.requesteurllib.error

Adaptado da fonte


Portanto, substitua este:

import urllib2

Com isso:

import urllib.request as urllib2
Aryan Beezadhur
fonte