[英]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.