原创

【Python】新装python,非安装用户无法找到模块问题

前言

在 RedHat 7.6 系统上完成 Python 3.10 的部署工作后,发现低权限用户无法正常使用全局的模块。

报错信息如下:

Traceback (most recent call last):
File "/home/sms/sms_query/app.py", line 2, in <module>
from flask import Flask,jsonify,render_template,session
ImportError: cannot import name 'Flask' from 'flask' (unknown location)

原因分析

在安装 Python 3.10 时,通过以下命令指定了自定义的安装路径(prefix):

./configure --prefix=/usr/local/python310    --with-openssl=/usr/local/openssl   --enable-optimizations

使用 python3 -m site 命令可以查看到 Python 包的路径:

sys.path = [
    '/usr/local/python310/bin',
    '/usr/local/python310/lib/python310.zip',
    '/usr/local/python310/lib/python3.10',
    '/usr/local/python310/lib/python3.10/lib-dynload',
    '/usr/local/python310/lib/python3.10/site-packages',
]
USER_BASE: '/root/.local' (exists)
USER_SITE: '/root/.local/lib/python3.10/site-packages' (doesn't exist)
ENABLE_USER_SITE: True

进一步检查发现,低权限用户(如 sms 用户)无法访问 /usr/local/python310/lib/python3.10/site-packages/ 这个路径,原因是该用户对该路径没有读取和执行权限。

解决方案

通过以下命令直接为低权限用户授予读取和执行权限即可解决问题:

chmod -R a+rX /usr/local/python310/lib/python3.10/site-packages/

本文来自:【Python】新装python,非安装用户无法找到模块问题-小码农,转载请保留本条链接,感谢!

温馨提示:
本文最后更新于 2025年03月06日,已超过 35 天没有更新。若文章内的图片失效(无法正常加载),请留言反馈或直接联系我
正文到此结束
该篇文章的评论功能已被站长关闭
本文目录