sudo pycharm
这可以以root执行python脚本,但是不应该使用 sudo 运行 pycharm。这不是一个好方法。sudo 不会将整个环境从user传递到superuser环境。
PyCharm配置 python interpreter
1. 先通过 which python 获得 python 指令所在路径:
$ which python
/usr/local/bin/python
这个python可能是Python2也可能是Python3,取决自己的默认配置,我这里默认是python3, /usr/local/bin/python下既有python2.7文件,也有python3.8文件。
2. 创建 sudo 脚本
如上得到了其所在路径是/usr/local/bin/python ,因此我创建了一个文件:vim /usr/local/bin/python-sudo.sh
,然后i
填入:
#!/bin/bash
sudo /usr/local/bin/python "$@"
如果要用python2, 则填:
#!/bin/bash
sudo /usr/local/bin/python2 "$@"
wq
编辑完退出后,给其执行权限:
sudo chmod -R 777 /usr/local/bin/python-sudo.sh
3. 使用脚本作为 Python 解释器
在 PyCharm 中,转到"Settings">"Python Interpreter"。单击当前项目解释器下拉列表旁边的齿轮图标,然后选择"Add..."。然后在"Virtualenv Environment"选择"Existing environment", 勾选"Make available to all projects",“Interpreter"浏览到 python-sudo.sh 并选择它,并将其设置为项目的解释器。
现在,运行或调试时,代码将以 root 用户身份运行。
4. 当前用户执行 sudo python 不需要输入密码执行
如果不使用NOPASSWD选项,它在技术上仍然可以工作,但会有点烦人,必须在每次运行时提供密码。如果从终端窗口运行 PyCharm,sudo 提示会出现在那里,而不是 PyCharm 中的任何位置。
此外,当将shell脚本添加为解释器时,PyCharm显然会多次执行它,因为终端会收到带有密码提示的垃圾邮件。
我们可以这样操作:
sudo visudo -f /etc/sudoers.d/python
添加以下格式的行:
<user> <host> = (root) NOPASSWD: <full path to python>
例如:
bgone CN-FEDORA = (root) NOPASSWD: /usr/local/bin/python