我正在開發一個爲多個站點提供服務的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. Karma如何通過id加載模塊?
- 7. 通過JSPM加載(自定義)模塊
- 8. 通過systemd運行Python腳本無法加載模塊
- 9. 通過插件加載的模塊的requirejs別名
- 10. 重新加載Python模塊
- 11. 無法加載Python模塊
- 12. 動態加載python模塊
- 13. 模塊名稱「加密」尚未加載上下文
- 14. 與現有模塊具有相同名稱的python模塊名稱
- 15. 無法找到模塊名稱 - Python,Flask
- 16. Python的同一模塊名稱公約
- 17. 從python包中獲取模塊名稱
- 18. 如何更改Python模塊名稱?
- 19. Python - 獲取完整包模塊名稱
- 20. 通過boost python進行模塊間異常名稱解析不起作用?
- 21. 如何通過模塊/方法名稱作爲命令行參數python 2.7.10
- 22. AngularJS:模塊'App'不可用!您拼錯模塊名稱或忘記加載它
- 23. AngularJS模塊'agGrid'不可用!您拼錯模塊名稱或忘記加載它
- 24. 通過GAE中的文件/模塊名稱導入
- 25. 導軌和模塊名稱加入
- 26. Excel VBA函數名稱解析,加載項vs本地模塊
- 27. 如何按名稱查詢加載的模塊?
- 28. 找不到加載模塊的名稱需要()
- 29. 在python中,如何通過模塊名稱的用戶輸入字符串導入模塊
- 30. 爲什麼在通過模塊添加名稱空間時收到錯誤?