我正在尝试以另一个用户身份运行脚本,并且用户已.bashrc
正确加载(它是一个 python 脚本,并且依赖于$PYTHONPATH
正确设置)。
例如,我尝试了我发现的一切这里,但我能从系统中得到的最好结果是一个空的$PYTHONPATH
(这比我原来的要好,它实际上使用了我的$PYTHONPATH
)。
用例是我正在教学生有关 shebangs 和路径之类的内容,并且我想要一种自动方法来检查他们的脚本是否正常。我可以通过使用 进入它们的环境来检查它们sudo su <username>
,但这非常乏味。
如何以另一个用户的身份执行脚本,并加载他们的环境,就像我sudo su <username>
自己使用然后运行它一样?
答案1
我认为这就是 python 虚拟环境的好处。
为每个 Python 项目创建隔离且可移植的环境。
不需要PYTHONPATH
。您可以将所有项目共享给所有用户,并在项目环境之间切换。
如果使用版本控制,只需将项目克隆到您自己的环境中,然后从那里开始。您可以在网络上找到许多操作方法。
否则
sudo su <username> -c python /somepath/somescript.py
至少应该在单行代码中运行一些脚本。
更新:
添加-l
开关。检查环境
sudo su -l foo -c printenv
像这样添加Pythonpath到/home/foo/.bashrc
export PYTHONPATH=/banana
启动脚本的 oneliner 是
sudo su -l <username> -c python /somepath/somescript.py