簡體   English   中英

使用exec進行Python3動態導入 - 為什么'as'不被執行?

[英]Python3 dynamic import with exec - why does 'as' not be executed?

我有這個代碼手動攜帶模塊

exec("import" + moduleName + " as selectedModule")
importlib.reload(selectedModule)

但這段代碼制作完成

name 'seletedModule' is not defined

它不會發生在python2.x上。 如何在python3上導入?

如果需要動態導入庫,請不要使用exec這不安全

請改用importlib.import_module

selected_module = importlib.import_module(module_name)
importlib.reload(selected_module)

至於你得到的錯誤:你可能在函數范圍內調用exec ,因此你需要在exec手動設置globalslocals是相同的( 使用Python中exec'ed字符串中定義的函數) 3 )。 解決方法:

exec("<do-stuff>", globals())

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM