python中的导入是否被视为动态链接?

2024-04-24 23:41:19 发布

您现在位置:Python中文网/ 问答频道 /正文

用posix和通用技术软件开发的说法。纯python(不是cython或c编译的库)模块的import是否构成动态链接?在


Tags: 模块import链接动态技术cythonposix
1条回答
网友
1楼 · 发布于 2024-04-24 23:41:19

不,加载纯Python模块不是一种动态链接。在

传统的动态链接将机器代码加载到一个新的内存块中,并允许多个可执行进程访问(动态链接库只需加载一次,其余由虚拟内存负责)。链接器在运行时连接可执行文件和动态库。在

另一方面,加载Python模块会将模块的字节码加载到Python进程中(如果此时没有可用的字节码缓存,Python将编译源代码)。加载的模块在进程之间不共享。不需要进行任何转换,运行字节码的结果会在Python堆中生成新的对象,解释器中的所有现有代码都可以与之交互。在

这个过程不涉及链接器,没有单独的内存,对于操作系统来说,没有单独的内存段需要管理,因为模块只是Python进程内存的一部分。在

相关问题 更多 >