【发布时间】:2021-09-13 04:38:04
【问题描述】:
在创建 Python 虚拟环境并激活它之后:
sudo pip install virtualenv
virtualenv venv
source venv/bin/activate
我可以在虚拟环境中本地 pip install 以及运行其他仍然使用在 ./venv 文件夹内定义的“本地”或“虚拟环境”的 Python 脚本。我要运行的 Python 脚本之一需要 root 用户权限(它尝试设置 os.setegid(1))。尝试运行它会引发错误,要求我以管理员权限运行它。但是当我在python my_script.py 命令前面添加sudo 时,虚拟环境会中断并且不会加载本地安装的模块(在虚拟环境中)。有没有办法在虚拟环境中以超级用户身份(使用 sudo)运行 python 脚本?
下面是 Python sn-p,如果在 Linux 机器上执行会引发 Operation not permitted 错误,要求提供 root 凭据:
import os
os.setegid(1)
OSError: [Errno 1] Operation not permitted
【问题讨论】:
-
sudo which python只是指向安装在根级别的 python 可执行文件位置。如何在运行命令之前为 root 激活venv?在什么命令之前?能否请您描述得更详细些。 -
另外,请发布一个最小的可重现示例
标签: python virtualenv