我正在開發一個爲多個站點提供服務的django項目;取決於我想從不同模塊導入不同功能的站點;如果我有它的包名和模塊名本身作爲一個字符串,我該如何在Python中導入一個模塊?Python:通過名稱加載模塊
2
A
回答
9
在Python通常,你可以使用__import__
內建函數或imp
模塊功能:
>>> sys1 = __import__("sys")
>>> import imp
>>> sys2 = imp.load_module("sys2", *imp.find_module("sys"))
>>> import sys
>>> sys is sys1 is sys2
True
1
Django的有自己的導入功能將得到一個字符串的客體。從documentation:
django.utils.module_loading
功能與Python模塊的工作。
import_string(dotted_path)
導入虛線模塊路徑並返回路徑中姓氏指定的屬性/類。如果導入失敗,則引發ImportError。例如:
from django.utils.module_loading import import_string ValidationError = import_string('django.core.exceptions.ValidationError')
相當於:
from django.core.exceptions import ValidationError
相關問題
- 1. 通過imp.load_source以相同的名稱加載模塊導致模塊合併
- 2. 通過GDB加載模塊
- 3. 使用模塊名稱加載模塊而不是文件名
- 4. Python模塊名稱衝突
- 5. Python模塊名稱衝突
- 6. python通過名稱獲取模塊變量
- 7. 從Python模塊動態加載所有名稱
- 8. 如何在Python中加載與其他模塊名稱相同的模塊?
- 9. Django導入模塊:無法通過名稱導入模塊
- 10. 通過JSPM加載(自定義)模塊
- 11. Karma如何通過id加載模塊?
- 12. 通過requirejs自動加載模塊
- 13. 通過.NET代碼加載Powershell模塊
- 14. 重裝Python模塊時,其通過加載「從pymod進口*」
- 15. 通過計算集羣加載python模塊
- 16. 通過systemd運行Python腳本無法加載模塊
- 17. 通過計算羣集加載python模塊
- 18. 通過插件加載的模塊的requirejs別名
- 19. 無法加載Python模塊
- 20. 重新加載Python模塊
- 21. 動態加載python模塊
- 22. 與現有模塊具有相同名稱的python模塊名稱
- 23. 模塊名稱「加密」尚未加載上下文
- 24. python確定導入模塊的名稱
- 25. python模塊的完全限定名稱
- 26. 從python包中獲取模塊名稱
- 27. Python中的名稱空間和模塊
- 28. Python的同一模塊名稱公約
- 29. Python模塊名稱以數字開頭
- 30. 無法找到模塊名稱 - Python,Flask