Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从<;类别';字节'&燃气轮机;而不是文件_Python_Python Import - Fatal编程技术网

Python 从<;类别';字节'&燃气轮机;而不是文件

Python 从<;类别';字节'&燃气轮机;而不是文件,python,python-import,Python,Python Import,在Python中,我有一个.pyd共享库,它被加密为.epyd,我用它读取和解密 以open('src_nuitka/src.epyd','rb')作为f: my_pyd_module=解密(f.read()) 现在,我想使用对象直接导入模块,而无需先写入磁盘。我该怎么做?因为它不是Python代码字符串,所以我不能使用exec。是否有可用于此任务的导入挂钩?所有编写导入钩子的示例都是使用exec或直接实例化类来实现这一点的,如中所示 因此,这是我第一次尝试使用@a_guest和(目前还没有

在Python中,我有一个.pyd共享库,它被加密为.epyd,我用它读取和解密

以open('src_nuitka/src.epyd','rb')作为f:
my_pyd_module=解密(f.read())
现在,我想使用
对象
直接导入模块,而无需先写入磁盘。我该怎么做?因为它不是Python代码字符串,所以我不能使用
exec
。是否有可用于此任务的导入挂钩?所有编写导入钩子的示例都是使用
exec
或直接实例化类来实现这一点的,如中所示


因此,这是我第一次尝试使用@a_guest和(目前还没有en-/解密)的思想:

导入importlib.abc
进口机械
导入系统
类DependencyInjectorFinder(importlib.abc.MetaPathFinder):
def uuu init uuuu(自我,加载程序):
self.\u加载程序:DependencyInjectorLoader=加载程序
def find_规格(自我、全名、路径、目标=无):
如果fullname==“src2”:
退货进口机械模块专用(全名,自装)
类依赖性InjectorLoader(importlib.Mechanical.ExtensionFileLoader):
def get_数据(自身、路径):
将open('src_packaged/src_dist/src.pyd','rb')作为f:
模块=f.读取()
返回模块
sys.meta_path.append(DependencyInjectorFinder(DependencyInjectorLoader('src2','src2'))
导入src2
导致

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: bad argument type for built-in operation
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
TypeError:内置操作的参数类型错误

最后一行。

是否尝试将字节转换为常规字符串?(my_pyd_module.decode('utf-8')@BlackBeans:那么我应该如何处理字符串?因为它不是Python代码,而是一个共享库,所以我不能使用前面提到的
exec
。我必须查找更多详细信息,但您查找的是Python标准库。你可以在官方的doc网站上搜索它,这里有一个专门介绍各种导入钩子的部分。@BlackBeans:我已经查阅了python标准库。很可能我错过了你们提到的东西,但我没有找到任何可以直接使用的东西,我也无法构建我自己想要的东西。我真的很努力。如果您能提供一个指向您所想内容的链接,我将不胜感激。@Make42如果您在将模块写入磁盘后执行了
导入my_pyd_模块
,则我认为是该模块负责导入该模块。因此,也许您可以在这些步骤的基础上进行构建,尽管它需要访问内部对象
importlib.\u bootstrap\u external.\u imp