[英]i want to import a non built in python library in a python file in ubuntu, what should i do?
[英]In python, what code should I generate to do "from FILE import *"?
我正在开发pythonizer ,这是一个将 perl 转换为 python 的程序,我正在寻找翻译语句“需要 FILENAME;” 至 python。 在这种情况下,我需要生成“from FILENAME import *”。 我想出了“来自文件名”部分(这里的BASENAME
是没有路径或扩展名的FILENAME
名):
from importlib.machinery import SourceFileLoader
module = SourceFileLoader(BASENAME, FILENAME).load_module()
并且import *
部分编码为:
__import__(name, fromlist=['*'])
但是我该如何组合它们呢?
我在importlib._bootstrap
中看到_handle_fromlist ,但在这里调用内部例程很可能不是正确的答案。
这是我关于实现这一点的第二个想法:
[_p, _m] = _prep_import(FILENAME)
sys.path[0:0] = _p
__import__(_m, fromlist=['*'])
sys.path.pop(0)
其中_prep_import()
查看 FILENAME(可能是一个表达式),删除任何扩展名,从中获取任何路径信息到第一个结果中,并将基本名称作为第二个结果。 请注意, FILENAME 可能包含破折号( -
),我相信__import__
可以。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.