如何导入可以通过url访问的python模块

5 投票
2 回答
3045 浏览
提问于 2025-04-16 18:36

我公司使用某种版本控制归档工具(微软Windows),我想直接从中导入数据。但我找不到办法。

这是我尝试过的:

>>> import sys
>>> sys.path.append(r"http://some_path_copied_and_pasted/05.Autres%20Outils/Regen_Engine")
>>> sys.path
['C:\\Python26\\Lib\\idlelib', 'C:\\Python26\\python26.zip', 'C:\\Python26\\DLLs', 'C:\\Python26\\lib', 'C:\\Python26\\lib\\plat-win', 'C:\\Python26\\lib\\lib-tk', 'C:\\Python26', 'C:\\Python26\\lib\\site-packages', 'http://some_path_copied_and_pasted/05.Autres%20Outils/Regen_Engine']
>>> import regen_engine as r
Traceback (most recent call last):
  File "<pyshell#6>", line 1, in <module>
    import regen_engine as r
ImportError: No module named regen_engine

我试着把网址中的“%20”替换成空格,但结果还是一样。我还尝试使用imp模块,但效果也不好。

所以我有几个问题:

  1. 从网址导入数据是否可能?
  2. 如果可以,我该怎么做呢?

也许解决办法是通过Sharepoint的其他隐藏路径来访问这个文件,这样就可以用一个标签来处理它。

2 个回答

1

试试这个:

def dynamic_import_by_uri(file)
    file = os.path.abspath(file)
    exec open(file, 'rb') in globals()

这个方法可以用,但在正式版本中不太安全...

2
import urllib
def urlimport(x):
    exec urllib.urlopen(x) in globals()

这样做是不对的,你绝对不应该在实际的生产代码中使用这个,这只是一个概念验证。

撰写回答