В качестве эксперимента я хочу посмотреть, как импортировать модуль Python из URL-адреса. Гипотетическая цель здесь состояла в том, чтобы импортировать из центрального местоположения, которое обновляет модули. Как это можно сделать?
Моя попытка следующая:
>>> 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
EDIT: Martijn Pieters определил исправление для кода примера, которое приводит к строковому представлению удаленного модуля. Полученный код выглядит следующим образом:
import urllib
def import_URL(URL):
exec urllib.urlopen(URL).read() in globals()