Ubuntu服务器/var目录下虚拟环境安装Flask出现权限报错问询
问题原因
- 你的问题确实和虚拟环境放在/var目录的操作逻辑有关,核心是权限配置错误:你用
sudo在/var目录创建虚拟环境时,生成的project_env目录所有者是root用户,你当前登录的普通账户没有写入该目录的权限,所以第一次pip安装会触发Errno 13权限报错 - 虚拟环境默认禁用
--user参数安装,因为虚拟环境的设计逻辑就是隔离用户全局site-packages,所以第二次报错属于虚拟环境的正常限制,和配置无关 - 你把虚拟环境放在/var目录统一管理、方便同事访问的需求本身没有问题,只要调整创建和权限配置的操作即可解决
正确操作步骤
第一步:删除已创建的有问题的虚拟环境
sudo rm -rf /var/project_env
第二步:创建共享用户组统一管理访问权限
如果需要多个同事协作访问项目,先创建专用的项目用户组:
# 创建项目组,名称可自定义,示例为project_group sudo groupadd project_group # 把你自己和需要协作的同事都加入该组 sudo usermod -aG project_group 你的用户名 sudo usermod -aG project_group 同事用户名
第三步:在/var下创建项目目录并配置权限
# 先创建项目根目录,名称可自定义,示例为flask_api_project sudo mkdir /var/flask_api_project # 设置目录所属主和组为root:项目组 sudo chown root:project_group /var/flask_api_project # 设置目录权限:组内用户有读写执行权限,且新创建的文件自动继承组权限 sudo chmod 2775 /var/flask_api_project
第四步:无需sudo创建虚拟环境
切换到项目目录,用普通用户身份创建虚拟环境即可:
cd /var/flask_api_project python3 -m venv project_env
第五步:激活环境安装依赖
source project_env/bin/activate pip install flask
此时不会再有权限报错,所有加入project_group的同事都可以正常访问、操作该虚拟环境和项目文件。
补充注意事项
- 后续如果给项目配置服务自启,建议把服务的运行用户也加入
project_group,避免运行时出现权限问题 - 不要随意用sudo操作虚拟环境内的pip安装,避免把文件权限改回root导致其他用户无法操作
内容的提问来源于stack exchange,提问作者Pixelherz
相关产品推荐
相关产品推荐

