当我尝试运行 python 命令时,我收到有关缺少模块“编码”的警告。所以我按照其他答案中的描述设置了 PYTHONHOME 变量,但它仍然找不到“编码”
[root@fedora ~]# python help
Python path configuration:
PYTHONHOME = '/usr/lib64/python3.9/venv/bin/python'
PYTHONPATH = (not set)
program name = 'python'
isolated = 0
environment = 1
user site = 1
import site = 1
sys._base_executable = '/bin/python'
sys.base_prefix = '/usr/lib64/python3.9/venv/bin/python'
sys.base_exec_prefix = '/usr/lib64/python3.9/venv/bin/python'
sys.platlibdir = 'lib64'
sys.executable = '/bin/python'
sys.prefix = '/usr/lib64/python3.9/venv/bin/python'
sys.exec_prefix = '/usr/lib64/python3.9/venv/bin/python'
sys.path = [
'/usr/lib64/python3.9/venv/bin/python/lib64/python39.zip',
'/usr/lib64/python3.9/venv/bin/python/lib64/python3.9',
'/usr/lib64/python3.9/venv/bin/python/lib64/python3.9/lib-dynload',
]
Fatal Python error: init_fs_encoding: failed to get the Python codec of the filesystem encoding
Python runtime state: core initialized
ModuleNotFoundError: No module named 'encodings'
Current thread 0x00007f241f6dd740 (most recent call first):
<no Python frame>
[root@fedora ~]#
以防万一,我最近在这台 x86_64 Fedora 34 主机上安装了一个交叉编译环境(针对 Raspberry Pi)。但我认为这并不重要。我尝试使用
dnf reinstall python
重新安装 python,但现在 Python 无法运行,dnf 和其他实用程序也无法运行。
我遇到了类似的问题,这是一个权限问题或确保执行命令的用户具有对整个虚拟环境目录的读取访问权限的问题。 /usr/lib64/python3.9/venv/bin/python (这里与您的错误日志路径有关)您可以使用 chmod 和 chown 命令调整权限。
例如,您可能希望确保运行用户说“data_user”用户可以遍历“python3.9”目录(这是您的文件夹,就在虚拟环境文件夹之前)可以读取虚拟环境:
sudo chown -R root:data_user /usr/lib64/python3.9/venv/bin/python sudo
chmod -R 755 /usr/lib64/python3.9
我可以建议的其他建议是暂时禁用 AppArmor 或您使用的任何防火墙以及 SELinux
那些在 Apache 中遇到同样问题的用户请替换为 Apache 用户 (www-data),而不是“data_user”或您给定 Web 服务器的用户