Cần cài đặt urllib2 cho Python 3.5.1


100

Tôi đang chạy Python 3.5.1 cho Mac. tôi muốn sử dụngurllib2 mô-đun. Tôi đã thử cài đặt nó nhưng tôi được thông báo rằng nó đã được chia thành urllib.requesturllib.errorcho Python 3.

Lệnh của tôi (hiện đang chạy từ thư mục bin khung vì nó không nằm trong đường dẫn của tôi):

sudo ./pip3 install urllib.request

Trả về cái này:

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

Tôi đã gặp lỗi tương tự trước đây khi tôi cố gắng cài đặt urllib2trong một lần bị rơi.


2
Bạn không thể nhập urllib.requestvào chương trình Python của mình?
michaelpri

3
urllib.request là một phần của thư viện chuẩn và không cần cài đặt.
Daniel Roseman


urllib là một phần của thư viện std nhưng nó chỉ chứa gói phân tích cú pháp trong đó, tôi không thể tìm thấy yêu cầu trong đó ....
Devendra Bhat

Câu trả lời:


169

CẢNH BÁO : Các nghiên cứu bảo mật đã tìm thấy một số gói bị nhiễm độc trên PyPI , bao gồm một gói có tênurllib,góinày sẽ 'điện thoại về nhà' khi được cài đặt. Nếu bạn đã sử dụng pip install urllibmột thời gian sau tháng 6 năm 2017, hãy xóa gói đó càng sớm càng tốt .

Bạn không thể, và bạn không cần.

urllib2là tên của thư viện có trong Python 2. Thay vào đó, bạn có thể sử dụng urllib.requestthư viện có trong Python 3. Các urllib.requestthư viện hoạt động theo cách tương tự urllib2các công trình bằng Python 2. Bởi vì nó là đã bao gồm bạn không cần phải cài đặt nó.

Nếu bạn đang làm theo một hướng dẫn cho bạn biết cách sử dụng urllib2thì bạn sẽ thấy mình sẽ gặp nhiều vấn đề hơn. Hướng dẫn của bạn được viết cho Python 2, không phải Python 3. Tìm một hướng dẫn khác hoặc cài đặt Python 2.7 và tiếp tục hướng dẫn của bạn trên phiên bản đó. Bạn sẽ tìm thấy urllib2phiên bản đó đi kèm.

Ngoài ra, hãy cài đặt requeststhư viện cho một API cấp cao hơn và dễ sử dụng hơn. Nó sẽ hoạt động trên cả Python 2 và 3.


24
Xin cảm ơn, sau đó tôi có thể sử dụng:import urllib.request as urllib2
MewX

vì vậy pip không được kiểm duyệt để chống lại phần mềm độc hại?
igor

3
@igor: piplà một công cụ dòng lệnh có thể khám phá và tải các gói từ bất cứ đâu. PyPI.org, chỉ mục gói mặc định pipsẽ chuyển đến, không được kiểm duyệt. Python Software Foundation là một tổ chức do tình nguyện viên điều hành và thậm chí không thể bắt đầu kiểm duyệt số lượng mã liên quan.
Martijn Pieters

Cảm ơn bạn đã quan tâm
B Furtado

28

Theo tài liệu :

Lưu ý Mô-đun urllib2 đã được chia thành một số mô-đun trong Python 3 có tên urllib.requesturllib.error. Công cụ 2to3 sẽ tự động điều chỉnh nhập khi chuyển đổi các nguồn của bạn sang Python 3.

Vì vậy, có vẻ như không thể làm những gì bạn muốn nhưng bạn có thể sử dụng các chức năng thích hợp của python3 từ urllib.request.


6

Trong Python 3, urllib2được thay thế bằng hai mô-đun tích hợp có tên urllib.requesturllib.error

Phỏng theo nguồn


Vì vậy, thay thế này:

import urllib2

Với cái này:

import urllib.request as urllib2
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.