You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

启动uWSGI时遭遇No module named 'encodings'错误求助

我之前也碰到过一模一样的坑!这个"No module named 'encodings'"错误本质是uWSGI通过systemd启动时,要么路径拼写错误导致没加载到虚拟环境,要么虚拟环境的Python路径识别混乱,咱们一步步解决:

首先揪出最明显的错误:systemd服务里的路径拼写问题

看你的uWSGI服务配置里的ExecStart命令:

cd /home/testuser1/myprojcettss; source /home/testuser1/myproject/bin/activate; uwsgi --ini /etc/uwsgi/sites/myprojecttss.ini

这里的项目目录写成了myprojcettss(少了个字母e),实际你的项目是myprojecttss!这个拼写错误会导致cd命令失败,后续的source激活虚拟环境也不会执行,uWSGI只能调用系统Python,但你的配置里又指定了PythonHome到虚拟环境,直接触发了Python初始化冲突,就报了encodings模块找不到的错误。

修复方案一:修正systemd服务配置,简化启动逻辑

没必要在systemd里手动source激活虚拟环境,uWSGI本身可以通过配置直接识别虚拟环境。修改后的/etc/systemd/system/uwsgi.service:

[Unit]
Description=uWSGI Emperor service

[Service]
ExecStartPre=-/usr/bin/bash -c 'mkdir -p /run/uwsgi; chown testuser1:nginx /run/uwsgi'
# 去掉多余的cd和source,直接用emperor模式启动,并且指定运行用户
ExecStart=/usr/local/bin/uwsgi --emperor /etc/uwsgi/sites
Restart=always
KillSignal=SIGQUIT
Type=notify
NotifyAccess=all
User=testuser1
Group=nginx

修复方案二:调整uWSGI配置文件,明确虚拟环境路径

修改/etc/uwsgi/sites/myprojecttss.ini,把模糊的home换成更明确的virtualenv,同时指定虚拟环境里的Python解释器路径,避免路径混淆:

[uwsgi]
project = myprojecttss
username = testuser1
base = /home/%(username)
env = myproject
chdir = %(base)/%(project)
module = %(project).wsgi
# 用virtualenv明确指定虚拟环境目录,比home更清晰
virtualenv = %(base)/%(env)
# 强制指定虚拟环境内的Python路径,彻底避免系统Python干扰
python = %(base)/%(env)/bin/python3.6
master = true
processes = 5
# 确保binary-path指向虚拟环境里的uwsgi
binary-path = %(base)/%(env)/bin/uwsgi
uid = %(username)
gid = nginx
socket = /run/uwsgi/%(project).sock
chown-socket = %(username):nginx
chmod-socket = 775
vacuum = true
die-on-term = true

最后执行这些步骤生效

  1. 停止当前uWSGI服务:
    sudo systemctl stop uwsgi
    
  2. 重新加载systemd配置:
    sudo systemctl daemon-reload
    
  3. 启动uWSGI服务:
    sudo systemctl start uwsgi
    
  4. 查看状态确认正常:
    sudo systemctl status uwsgi -l
    

这样修改后,uWSGI会直接用虚拟环境里的Python运行,不会再出现encodings模块找不到的问题了。

内容的提问来源于stack exchange,提问作者connie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 08:47:29