我测试过,需要在root访问权限的代码pyCharm
通过运行sudo pycharm.sh
但这不是我会建议这样做的方式。
我知道这是可能使用sudo权限来调试由pyCharm运行Python解释器作为须藤但是我们如何做到这一点?
我测试过,需要在root访问权限的代码pyCharm
通过运行sudo pycharm.sh
但这不是我会建议这样做的方式。
我知道这是可能使用sudo权限来调试由pyCharm运行Python解释器作为须藤但是我们如何做到这一点?
创建一个shell脚本,做“sudo的蟒蛇”,并转发参数,配置脚本是PyCharm Python解释器。
这个shell脚本的名称应该开始python
(:源http://forum.jetbrains.com/message/PyCharm-424-3 )。
对于它的价值,我已经成功运行使用sudo权限的(在Ubuntu 16.04)这样的python脚本:
在脚本中的第一行,这样定义的解释:
#!/usr/bin/sudo python
使脚本可执行:
chmod +x myscript.py
直接运行脚本, 而不指定python
自己的解释:
./myscript.py
我遇到的另一种方式,所以我想分享它(这个回答更像是其他答案的替代)来解决这个问题。
这是值得在这里指出,这种解决方案“攻击”运行仅在根模式一定的Python脚本(在pycham IDE内),而不是整个pycharm应用程序的问题。
1)禁用需要密码来运行的Python:
这将通过编辑/etc/sudoers.d/python文件中achived。 我们需要做的是在该文件中添加如下条目:
用户主机=(根)NOPASSWD:full_path_to_python,例如:
guya ubuntu = (root) NOPASSWD: /usr/bin/python
笔记:
user
可以通过命令来检测: whoami
host
能够通过命令来检测: hostname
2)创建 “命令脚本”:这个脚本的目的是给蟒蛇特权作为root用户运行。
创建一个名为python-sudo.sh脚本,并添加以下到它:
#!/bin/bash
sudo /usr/bin/python "$@"
再次注意,path是您的Python作为前一个阶段。
不要忘了给执行权限使用命令该脚本: chmod
chmod +x python-sudo.sh
3)使用 python-sudo.sh
脚本作为pycharm解释:
在pycharm请访问: File --> Settings --> Project interpreter
在右上角的右手边点击“设置”图标,并点击“添加本地”。
在浏览器选项选择我们先前创建的python-sudo.sh脚本。 这将给PyCharm的特权运行python脚本作为根。
4)调试测试:所有有剩下要做的就是实际调试中pycharm IDE特定的Python脚本。 在脚本调试这可以很容易地通过做右击- >打Debug sample_script_to_debug.py
希望这是有益的,让我知道,如果有这种方法的任何错误。
干杯,
盖伊。
我通过复制解决了这个问题/usr/bin/python3
在我家,然后设置cap_net_bind_service
能力:
cp /usr/bin/python3 ~/python35-setcap
sudo setcap 'cap_net_bind_service=+ep' ~/python35-setcap
然后用~/python35-setcap
在pycharm Python解释器。
通过这种方式,可以绑定下端口,但没有任何的Python 3程序可以做到这一点,并pycharm仍然可以杀死你的脚本。 你也可以限制,如果你想更安全的执行权限给自己。
我曾经遇到过试图在树莓派调试蓝牙相关的代码相同的问题。 我想,因为你的设备上执行远程调试,该设备仅用于开发使用。 在这种情况下,我的卑微的选择,你应该允许SSH root登录,这样你就可以配置PyCharm使用root用户,你不需要须藤。 这是我所选择的解决方案。
以下说明是针对覆盆子裨,但程序为任何Linux分发相同的:
首先,添加你的公钥的authorized_keys
:
cat ~/.ssh/id_rsa.pub | ssh pi@raspberrypi "mkdir -p ~/.ssh && cat >>
~/.ssh/authorized_keys"
然后登录到树莓派:
ssh pi@raspberrypi
一旦你有一个控制台复制你的钥匙到root
目录:
sudo mkdir /root/.ssh
sudo cp authorized_keys /root/.ssh/
最后编辑sshd_config
添加PermitRootLogin without-password
:
sudo vim /etc/ssh/sshd_config
使用您的首选编辑器。
现在,您可以到树莓派内ssh作为根:
ssh root@raspberrypi
使用root
代替或pi
用户,给你运行你的代码,甚至是远程,使用root权限,如要求的的BlueZ能力。
在PyCharm新版本,它有一个配置在根目录下运行Python解释器,无需解决方法。 见下图。 检查复选框:使用此解释器通过sudo root权限执行代码
终奌站:
sudo ./Pycharm
这样,你就可以开始PyCharm作为超级用户