python - 如何使用 for 循环将多个 .so 文件导入到 Python 中?

标签 python python-import python-importlib

所以我想导入子目录中的几个 .so 文件,这是树

.
├── driver.py
├── intvegas.f
├── jetdrive-unp-algo.f90
├── jetint-unp-algo.f
├── jetme-unp-algo.f
├── makefile
├── part-unp-ms.f90
├── setup.sh
└── so
    ├── g_g_to_g_g.so
    ├── g_g_to_q_qb.so
    ├── g_q_to_g_q.so
    ├── q_q_to_q_q.so
    ├── q_qb_to_g_g.so
    ├── q_qb_to_q_qb.so
    ├── q_qb_to_qp_qbp.so
    ├── q_qbp_to_q_qbp.so
    ├── q_qp_to_q_qp.so
    └── total.so

我想导入so目录中的所有.so文件,这是代码

#!/usr/bin/env python
import sys, os
sys.path.insert(0, './so')
import numpy as np
import pylab as py

channels = {'total', 'q_qp_to_q_qp', 'q_qbp_to_q_qbp', 'q_q_to_q_q', 'q_qb_to_qp_qbp', 'q_qb_to_q_qb', 'q_qb_to_g_g', 'g_g_to_q_qb', 'g_q_to_g_q', 'g_g_to_g_g'}
import importlib
for channel in channels:
    module = './so' + channel
    globals()[module] = importlib.import_module(module, package = 'my_current_package')

但是我收到如下错误

ImportError: Import by filename is not supported.

有人可以帮我解决这个问题吗?非常感谢!

最佳答案

for channel in channels:
    module = './so' + channel

您确定在这种情况下获得了正确的文件名吗? 也许解决办法是:

module = channel

关于python - 如何使用 for 循环将多个 .so 文件导入到 Python 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53750089/

相关文章:

python - 如何使用 Python Boto3 根据带有通配符的前缀列出对象?

python - Pathos 处理池递归限制

python - 从另一个目录导入 python 模块(不在站点包中!)

python importlib 在守护进程上下文中找不到模块

python - importlib 找不到模块

python - 未解析的属性引用 'objects'

python - 检测导入的模块是什么

python - 使用 "__import__"从字符串变量导入模块给出的结果与普通导入语句不同

python - 使用 importlib.util 检查库时出错

python - 如何使用 swagger 和 Flask Restplus 正确渲染数组参数?