पायथन 3.5.1 के लिए urllib2 को स्थापित करने की आवश्यकता है


100

मैं मैक के लिए पायथन 3.5.1 चला रहा हूं। मैं urllib2मॉड्यूल का उपयोग करना चाहता हूं । मैं इसे स्थापित करने की कोशिश की लेकिन मुझे बताया गया था कि यह में विभाजित हो गया है urllib.requestऔर urllib.errorअजगर 3 के लिए।

मेरा आदेश (अभी फ्रेम बिन निर्देशिका से चल रहा है क्योंकि यह मेरे पथ में नहीं है):

sudo ./pip3 install urllib.request

यह लौटाता है:

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

इससे पहले कि मैं urllib2एक ही झपट्टा में स्थापित करने की कोशिश की मुझे वही त्रुटि मिली ।


2
क्या आप सिर्फ urllib.requestअपने पायथन कार्यक्रम में आयात नहीं कर सकते ?
माईकैलप्री

3
urllib.request मानक पुस्तकालय का हिस्सा है और इसे स्थापित करने की आवश्यकता नहीं है।
डैनियल रोज़मैन


urllib std लाइब्रेरी का हिस्सा है, लेकिन इसमें केवल पार्स पैकेज है, मैं इसमें अनुरोध नहीं पा रहा था ....
Devendra Bhat

जवाबों:


169

चेतावनी : सुरक्षा अनुसंधानों ने PyPI पर कई ज़हर भरे पैकेज पाए हैं , जिसमें एक पैकेज भी शामिल हैurllib, जो स्थापित होने पर 'फोन होम' होगा। यदि आपने pip install urllibजून 2017 के बाद कुछ समय का उपयोग किया है , तो जल्द से जल्द उस पैकेज को हटा दें

आप नहीं कर सकते, और आपको इसकी आवश्यकता नहीं है।

urllib2Python 2 में शामिल लाइब्रेरी का नाम है। आप इसके बजाय Python 3 के साथ शामिल urllib.requestलाइब्रेरी का उपयोग कर सकते हैं । urllib.requestपुस्तकालय उसी तरह काम करता urllib2क्योंकि यह है अजगर 2 में काम करता है पहले से ही शामिल आप इसे स्थापित करने की आवश्यकता नहीं है।

यदि आप एक ट्यूटोरियल का अनुसरण कर रहे हैं जो आपको उपयोग करने के लिए कहता है urllib2तो आप पाएंगे कि आप अधिक मुद्दों में भाग लेंगे। आपका ट्यूटोरियल Python 2 के लिए लिखा गया था, Python 3 के लिए नहीं। एक अलग ट्यूटोरियल ढूंढें, या Python 2.7 को इंस्टॉल करें और उस संस्करण पर अपने ट्यूटोरियल को जारी रखें। आप पाएंगे urllib2कि संस्करण के साथ आता है।

वैकल्पिक रूप से, एपीआई का उपयोग करने के लिए एक उच्च-स्तर और आसान के लिए requestsपुस्तकालय स्थापित करें । यह पायथन 2 और 3 दोनों पर काम करेगा।


24
धन्यवाद, तब मैं उपयोग कर सकता था:import urllib.request as urllib2
MewX

तो पाइप मैलवेयर के खिलाफ संचालित नहीं है?
इगोर

3
@igor: pipएक कमांड-लाइन टूल है जो पैकेजों को खोज और लोड कर सकता है। PyPI.org, डिफ़ॉल्ट पैकेज इंडेक्स pipको मॉडरेट किया जाएगा। पायथन सॉफ्टवेयर फाउंडेशन एक स्वयंसेवक द्वारा संचालित संगठन है और संभवतः इसमें शामिल कोड की मात्रा को मॉडरेट करना शुरू नहीं कर सकता है।
मार्टिन पीटर्स

सिर के लिए धन्यवाद
बी

28

डॉक्स के लिए रिकॉर्डिंग :

नोट Pyllon 3 नामित कई मॉड्यूलों में urllib2 मॉड्यूल को विभाजित किया गया है urllib.requestऔर urllib.error। पायथन 3 में अपने स्रोतों को परिवर्तित करते समय 2to3 टूल स्वचालित रूप से आयात को अनुकूलित करेगा।

तो ऐसा प्रतीत होता है कि आप जो चाहते हैं वह करना असंभव है लेकिन आप उपयुक्त python3 कार्यों का उपयोग कर सकते हैं urllib.request


6

पायथन 3 में, urllib2नाम के दो-इन-अंतर्निहित मॉड्यूल द्वारा प्रतिस्थापित किया गया था urllib.requestऔरurllib.error

स्रोत से अनुकूलित


इसलिए इसे प्रतिस्थापित करें:

import urllib2

इसके साथ:

import urllib.request as urllib2
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.