[英]use import_module to access module from site-packages
我想從我使用 pip 安裝的 package 的特定目錄中導入所有模塊,也就是說,它位於site-packages
。
我試過的
假設 package 名稱是package
並且它有一個名為directory
的目錄。 它有很多文件,如a.py
、 b.py
等。我需要將它們全部導入。 我使用內置的__file__
列出了directory
中的所有文件,這不是問題。 當我嘗試使用importlib.import_module
導入模塊時,我得到ModuleNotFoundError
即使我 100% 確定它們存在。 我使用了相對導入。
代碼片段
modules
是directory
中所有文件的列表
for module in modules:
importlib.import_module('.'+module, 'C:\\Users\\.....\\package\\directory')
ModuleNotFoundError: No module named 'C:\\Users\\.....\\package\\directory'
最后
我做錯了什么以及引用站點包的正確方法是什么?
在要執行的目錄下創建一個空的init .py 文件
import pkgutil
import sys
def load_all_modules_from_dir(dirname):
for importer, package_name, _ in pkgutil.iter_modules([dirname]):
full_package_name = '%s.%s' % (dirname, package_name)
if full_package_name not in sys.modules:
module = importer.find_module(package_name
).load_module(full_package_name)
print module
load_all_modules_from_dir('site-packages')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.