文章目录1 代码加载顺序1.1 问题场景1.2 核心原理2 容器化部署2.1 公共部分2.1.1 requirements.txt2.1.2 运行相关命令2.1.3 Dockerfile2.2 查看进程3 Nginx配置3.1 WSL中安装nginx3.2 修改默认配置3.2.1 前端资源代理配置 (/frontend/)3.2.2 API接口代理配置 (/api/)1 代码加载顺序1.1 问题场景在python中如果有两个文件xxx.cpython-38-x86_64-linux-gnu.so和xxx.py在运行时会加载哪一个?在Python中,如果存在同名的.so编译模块文件和.py源码文件,Python在运行时会优先加载.so文件(即xxx.cpython-38-x86_64-linux-gnu.so)。1.2 核心原理这由Python的导入机制决定。当执行代码文件xxx时,Python内置的PathFinder会遍历sys.path列表来查找模块。在同一个目录下,Python的默认导入优先级是:C扩展模块(.so/.pyd) 字节码文件(.pyc) 源码文件(.py)。1、具体加载过程:(1)定位模块:PathFinder在目标路径下发现了 xxx.cpython-38-x86_64-linux-gnu.so和xxx.py。(2)生成加载蓝图:由于.so文件的优先级更高,PathFinder会返回一个包含 ExtensionFileLoader的ModuleSpec对象。(3)激活加载器:ExtensionFileLoader会通过操作系统的动态链接库机制,直接将编译好的二进制代码加载到内存中执行,而完全忽略旁边的.py文件。2、补充说明(1)命名规范:你提到的.so文件名x