Perlu menginstal urllib2 untuk Python 3.5.1

100

Saya menjalankan Python 3.5.1 untuk Mac. Saya ingin menggunakan urllib2modul. Saya mencoba menginstalnya tetapi saya diberitahu bahwa itu telah dipecah menjadi urllib.requestdan urllib.erroruntuk Python 3.

Perintah saya (berjalan dari direktori framework bin untuk saat ini karena tidak ada di jalur saya):

sudo ./pip3 install urllib.request

Kembalikan ini:

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

Saya mendapat kesalahan yang sama sebelumnya ketika saya mencoba menginstal urllib2dalam satu gerakan.

Eamonn Gormley
sumber
2
Tidak bisakah Anda mengimpor urllib.requestprogram Python Anda?
michaelpri
3
urllib.request adalah bagian dari pustaka standar dan tidak perlu dipasang.
Daniel Roseman
duplikat stackoverflow.com/questions/16597865/…
pengguna2673238
urllib adalah bagian dari pustaka std tetapi hanya berisi paket parse di dalamnya, saya tidak dapat menemukan permintaan di itu ....
Devendra Bhat

Jawaban:

169

PERINGATAN : Riset keamanan telah menemukan beberapa paket beracun di PyPI , termasuk paket bernamaurllib, yang akan 'menelepon ke rumah' saat diinstal. Jika Anda menggunakan pip install urllibbeberapa waktu setelah Juni 2017, hapus paket itu secepatnya .

Anda tidak bisa, dan tidak perlu.

urllib2adalah nama pustaka yang disertakan dalam Python 2. Sebagai gantinya, Anda dapat menggunakan urllib.requestpustaka yang disertakan dengan Python 3. The urllib.requestperpustakaan bekerja dengan cara yang sama urllib2karya Python 2. Karena sudah termasuk Anda tidak perlu menginstalnya.

Jika Anda mengikuti tutorial yang memberitahu Anda untuk menggunakan urllib2maka Anda akan menemukan Anda akan mengalami lebih banyak masalah. Tutorial Anda ditulis untuk Python 2, bukan Python 3. Temukan tutorial lain, atau instal Python 2.7 dan lanjutkan tutorial Anda pada versi itu. Anda akan menemukan urllib2datang dengan versi itu.

Atau, instal requestspustaka untuk level yang lebih tinggi dan API yang lebih mudah digunakan. Ini akan bekerja pada Python 2 dan 3.

Martijn Pieters
sumber
24
Terima kasih, maka saya bisa menggunakan:import urllib.request as urllib2
MewX
jadi pip tidak dimoderasi untuk melawan malware?
igor
3
@igor: pipadalah alat baris perintah yang dapat menemukan dan memuat paket dari mana saja. PyPI.org, indeks paket default pipakan pergi ke, tidak dimoderasi. Python Software Foundation adalah organisasi yang dijalankan oleh sukarelawan dan bahkan tidak mungkin mulai memoderasi jumlah kode yang terlibat.
Martijn Pieters
Terima kasih atas perhatiannya
B Furtado
28

Menurut dokumen :

Catatan Modul urllib2 telah dibagi menjadi beberapa modul dengan Python 3 bernama urllib.requestdan urllib.error. Alat 2to3 akan secara otomatis menyesuaikan impor saat mengonversi sumber Anda ke Python 3.

Jadi tampaknya tidak mungkin untuk melakukan apa yang Anda inginkan tetapi Anda dapat menggunakan fungsi python3 yang sesuai dari urllib.request.

Ilya V. Schurov
sumber
6

Di Python 3, urllib2digantikan oleh dua modul built-in bernama urllib.requestdanurllib.error

Diadaptasi dari sumber


Jadi gantilah ini:

import urllib2

Dengan ini:

import urllib.request as urllib2
Arya Beezadhur
sumber