VS Code 终端以不同用户身份运行 Python 代码

问题描述 投票:0回答:1

使用

python test.py
运行此文件时:

import os
import getpass

print(f"Env thinks the user is {os.getlogin()}")
print(f"Effective user is {getpass.getuser()}")

在我的 VS Code 终端中我得到:

Env thinks the user is root
Effective user is johndoe

但是在普通的 macOS 终端中运行它会给出

Env thinks the user is johndoe
Effective user is johndoe

有人知道为什么会有差异吗?不幸的是,当不使用我的用户时,这会导致权限错误。是否是 VS Code 中的设置配置错误等?

python macos visual-studio-code terminal
1个回答
0
投票

从 macOS Dock 或 Launchpad 启动 VS Code 时, 它不与登录 shell 关联,因此

os.getlogin()
返回
root

但是,当您在 VS Code 外部打开终端时,它会与登录 shell 关联,因此

os.getlogin()
返回您的用户名。

如果您尝试使用

code
命令从终端启动 VS Code,它应该将 VS Code 与登录 shell 相关联,从而导致
os.getlogin()
返回您的用户名。

© www.soinside.com 2019 - 2024. All rights reserved.