如何查询Apache中mod_wsgi使用的Python版本及安装路径
方法1:通过Apache启动日志确认基础版本
你现有的Apache重启日志已经给出了核心绑定信息:
Apache/2.4.46 (Ubuntu) OpenSSL/1.1.1j mod_wsgi/4.7.1 Python/3.9 configured -- resuming normal operations
mod_wsgi在编译安装时就会绑定固定的Python版本,这行日志已经明确你当前用的mod_wsgi绑定的是Python3.9大版本。
方法2:在wsgi入口文件中输出运行时信息(最准确)
直接修改你的/home/Downloads/wsgi.py文件,在头部加入以下代码:
import sys # 输出信息到Apache错误日志 print("--- mod_wsgi运行时Python信息 ---") print(f"Python完整版本号:{sys.version}") print(f"Python可执行文件路径:{sys.executable}") print(f"Python搜索路径:{sys.path}") print("-------------------------------")
修改后重启Apache服务,随便访问一次你的Web服务,再查看Apache的error.log,就能拿到mod_wsgi实际运行时的所有Python相关路径信息,这个结果100%准确。
方法3:查询mod_wsgi模块的依赖库
在终端执行以下命令,查看mod_wsgi模块依赖的Python动态库,就能确认绑定的Python安装路径:
# 先确认mod_wsgi模块位置(Ubuntu默认路径如下,不对的话可以用find / -name mod_wsgi.so查找) ldd /usr/lib/apache2/modules/mod_wsgi.so | grep python
输出示例如下,直接就能看到绑定的Python库路径:
libpython3.9.so.1.0 => /usr/lib/x86_64-linux-gnu/libpython3.9.so.1.0 (0x00007f5b92a00000)
额外说明
你当前配置里的WSGIDaemonProcess行是注释状态,所以mod_wsgi运行在嵌入式模式,默认使用系统全局的Python3.9环境,就是你贴出的sys.path对应的系统级Python环境,没有加载虚拟环境。如果后续要使用虚拟环境,取消该行注释,把python-home参数的值改成你的虚拟环境根目录即可。
内容的提问来源于stack exchange,提问作者Sidharth kaushik
相关产品推荐
相关产品推荐

