用 posix 和一般技术软件开发的说法。纯 python(不是 cython 或 c 编译库)模块的 import
是否构成动态链接?
最佳答案
不,加载纯 Python 模块不被视为动态链接的一种形式。
传统的动态链接将机器代码加载到新的内存块中,并且可以为多个可执行进程提供访问权限(动态链接库只需要加载一次,虚拟内存负责其余的工作).链接器在运行时连接可执行文件和动态库。
另一方面,加载 Python 模块会将模块的字节码加载到 Python 进程本身(如果此时也没有可用的字节码缓存,Python 将编译源代码)。加载的模块在进程之间不共享。无需进行任何转换,运行字节码的结果会在 Python 堆中生成新对象,解释器中的所有现有代码都可以与之交互。
此过程中不涉及链接器,没有单独的内存,对于操作系统而言,没有单独的内存部分需要管理,因为模块只是 Python 进程内存的一部分。
关于python - python中的导入是否被认为是动态链接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40492518/