如何以其他用户身份向其指定Python环境安装pip依赖包
原命令失效的核心原因:你执行的两条sudo -i命令分别对应独立的登录shell会话,第一条命令中激活虚拟环境的操作仅在本次会话生效,会话结束后环境变量会完全重置,第二条sudo启动的新会话不会继承前一次的虚拟环境配置,因此调用的还是全局pip。
可行解决方案
- 方法1:将激活虚拟环境和安装依赖的操作合并到同一会话执行
命令如下:sudo -i -u otheruser bash -c "source /home/otheruser/project/project-env/bin/activate && pip install -r /home/otheruser/project/project/requirements.txt" - 方法2:直接调用虚拟环境内的pip二进制(更稳妥,无需处理环境变量继承问题)
不需要主动激活虚拟环境,直接指定虚拟环境目录下的pip路径执行安装即可,命令如下:sudo -i -u otheruser /home/otheruser/project/project-env/bin/pip install -r /home/otheruser/project/project/requirements.txt
内容的提问来源于stack exchange,提问作者user16880494
相关产品推荐
相关产品推荐

