एक प्रयोग के रूप में, मैं देखना चाहता हूं कि एक यूआरएल से पाइथन मॉड्यूल कैसे आयात करें। यहां काल्पनिक लक्ष्य केंद्रीय स्थान से आयात करना होगा जो मॉड्यूल को अद्यतित रखता है। यह कैसे किया जा सकता है?यूआरएल से पाइथन मॉड्यूल कैसे आयात किया जा सकता है?
मेरे प्रयास इस प्रकार है:
>>> import urllib
>>>
>>> def import_URL(URL):
... exec urllib.urlopen(URL) in globals()
...
>>> import_URL("https://cdn.rawgit.com/wdbm/shijian/master/shijian.py")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 2, in import_URL
TypeError: exec: arg 1 must be a string, file, or code object
संपादित करें: Martijn Pieters उदाहरण कोड है कि दूरदराज के मॉड्यूल के स्ट्रिंग प्रतिनिधित्व में परिणाम के लिए एक ठीक की पहचान की। परिणामस्वरूप कोड निम्नानुसार है:
import urllib
def import_URL(URL):
exec urllib.urlopen(URL).read() in globals()
आपको वास्तव में नहीं करना चाहिए। इंटरनेट पर कोड लोड न करें और इसे चलाएं, जब तक कि आप हैक नहीं करना चाहते। उस ने कहा, आपकी एकमात्र त्रुटि 'urlopen()' परिणाम पर '.read()' को कॉल नहीं कर रही है। –
किसी URL से लोड करने के बजाय, कोड को अद्यतित रखने के लिए एक संशोधन नियंत्रण प्रणाली (गिट, मर्क्यूरियल इत्यादि) का उपयोग करें। –
[मार्टिजन पीटर] (http://stackoverflow.com/users/100297/martijn-pieters) वहां आपकी टिप्पणियों के लिए धन्यवाद और '' 'पढ़ने()' '' समस्या को ढूंढने के लिए धन्यवाद। इसका परिणाम एक स्ट्रिंग में होता है जिसे निष्पादित किया जा सकता है। मुझे सुरक्षा समस्याओं से अवगत है; यह सिर्फ प्रयोगात्मक उद्देश्यों के लिए है। क्या आपको पता है कि इस विचार के लिए अधिक सुरक्षित दृष्टिकोण रखने का कोई प्रयास है? – d3pd