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

执行pip安装的simple-websocket-server遇PermissionError权限拒绝求助

解决simple-websocket-server运行时的PermissionError问题

从你给出的文件权限信息 -rwxr-x--- 1 root staff 37 1月 18 23:16 /usr/local/lib/python3.6/dist-packages/SimpleWebSocketServer/__init__.py 来看,问题的核心是当前用户对该文件的访问权限不足,哪怕你已经加入了staff组,我们可以一步步排查和解决:

1. 确认用户组是否真正生效

首先要确认你的用户账号确实已经在staff组里,并且变更已经完全生效:

  • 运行命令 groups,查看输出里是否包含staff。如果没有,重新执行添加组的命令:
    sudo usermod -aG staff $USER
    
    注意,必须注销并重新登录(或者直接重启虚拟机),组的变更才会完全生效——仅仅注销有时候可能因为会话缓存问题没彻底更新,重启虚拟机是最稳妥的方式。

2. 检查父目录的访问权限

如果已经确认在staff组里但还是报错,可能是SimpleWebSocketServer目录本身的权限限制了访问:

  • 运行命令查看目录权限:
    ls -ld /usr/local/lib/python3.6/dist-packages/SimpleWebSocketServer/
    
    确保目录的组权限包含x(执行权限,对目录来说就是进入目录的权限),如果没有,执行:
    sudo chmod g+x /usr/local/lib/python3.6/dist-packages/SimpleWebSocketServer/
    

3. 直接调整文件/目录权限

如果上面的方法都没用,可以直接放宽文件的访问权限,让所有用户都能读取这个模块的文件:

# 调整单个文件权限
sudo chmod o+r /usr/local/lib/python3.6/dist-packages/SimpleWebSocketServer/__init__.py
# 或者一次性调整整个目录下的所有文件和子目录
sudo chmod -R o+rX /usr/local/lib/python3.6/dist-packages/SimpleWebSocketServer/

X参数会给目录添加执行权限,给文件保留原有可执行权限(如果有的话),避免不必要的权限变更。

4. 更推荐的方案:使用虚拟环境

系统级Python的权限问题往往容易反复,最彻底的解决方式是使用Python虚拟环境,把依赖安装在用户自己的空间里,完全不涉及系统级权限:

  • 创建虚拟环境:
    python3.6 -m venv my_websocket_env
    
  • 激活虚拟环境:
    source my_websocket_env/bin/activate
    
  • 安装模块:
    pip install simple-websocket-server
    
    之后在这个虚拟环境里运行代码,就完全不会有系统权限的问题了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 09:00:48