[英]Importing a fixed module from a dynamic path at runtime in python3
我四處搜尋,但未找到解決此特定Python3問題的解決方案。 也許是我正在使用的關鍵字,或者可能只是一個特殊的用例。 如果我的問題是后者,這是我的問題:
我正在開發一個python(3)腳本,該腳本需要使用已在用戶主目錄中本地編譯的python模塊。 作為配置腳本,我沒有什么花哨的東西可以將用戶的路徑配置為自動化過程。 我想在運行時將python模塊的路徑作為命令行參數傳遞給腳本,然后動態加載該模塊。 例如,我將呼叫:
$ myscript.py --modpath /home/user/path/to/ModuleSource
然后在我分析命令行參數時,在我的代碼中調用如下內容:
import sys
sys.path.append(localModulePath)
import GlobalModuleName
問題在於,在使用模塊方法的腳本的靜態代碼中,只有在運行時將模塊的定義傳遞給腳本時,才能解析實際的模塊。 也就是說,如果我有如下的python代碼
GlobalModuleName.moduleFunc()
我收到“ NameError:名稱'GlobalModuleName'未定義 ”的運行時錯誤。
如何使該配置正常工作而不產生錯誤? 我確定將使用模塊的動態定義的代碼是正確的。 感謝您提前的指示。
這對我來說很完美
module1.py import os導入系統
def func1():
print("Executed func1 of module1")
main.py
import sys
pathPassed=sys.argv[1]
sys.path.append(pathPassed)
import module1
module1.func1()
執行
python main.py ThePathformodule1.py
Executed func1 of module1
您唯一需要注意的是, import
語句應該在sys.path.append
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.