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

Is an import in python considered to be dynamic linking?

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

不,加载纯Python模块不被视为动态链接的一种形式。

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

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

此过程中不涉及链接器,没有单独的内存,OS 没有单独的内存部分需要管理,因为模块只是 Python 进程内存的一部分。