python中有的代码可能需要su权限,如

import os

os.mkdir('/media/xxx/disk_a')

如果在交互式环境中使用,需要以sudo的方式启动python.而在PyCharm的集成式开发环境中,使用sudo来启动pycharm可能能够正常运行这些代码(未测试),但用户目录发生了变化(用户目录变成了/root),从而导致运行环境变化.下面的方法可实现以普通用户启动pycharm,但在运行和调试代码时以su权限启动python解释器(即sudo python 程序入口.py),经测试成功.方法如下(参考原文在此

1.设置python解释器默认以sudo方式启动,且免密码输入:

sudo visudo -f /etc/sudoers.d/python

在文件中输入如下文字

<user> <host> = (root) NOPASSWD: <full path to python>

如:

eric V-LU-ERSM = (root) NOPASSWD: /home/eric/anaconda2/bin/python

注:编辑sudoers.d中的文件一定要用visodu,它带安全检查功能.其它编辑工具可能导致文件解析失败,从而无法使用sudo命令.出现sudo解析失败,无法初始化策略插件错误(可通过系统恢复模式进行修复,方法在这里)

2.创建一个脚本文件(如su-python.sh),以sudo方式启动python解释器,文件内容参考如下:

#! /bin/bash

sudo /home/eric/anaconda2/bin/python "$@"

修改文件权限为可执行

chmod +x su-python.sh

3.使用su-python.py作为pycharm ide的解释器.

启动pycharm,打开工程,选择菜单命令File--Settings,选择Project:<your project>--Project Interpreter,如图

选择Project Interpreter右边的齿轮图标,在弹出菜单中选择Add Local,然后在文件选择对话框中选中刚刚创建的su-python.sh,确定后即可.

经过上面的设置后,该项目将以su权限启动python解释器运行和调试代码文件.

												

在PyCharm中以root权限运行和调试python代码的更多相关文章

  1. ubuntu下apache2的cgi-bin中以root权限运行程序

    一,安装apache2 sudo apt-get install apache2 二.配置cgi-bin sudo chmod 777 /var/www/html sudo vim /etc/apac ...

  2. android中获取root权限的方法以及原理(转)

    一. 概述 本文介绍了android中获取root权限的方法以及原理,让大家对android 玩家中常说的“越狱”有一个更深层次的认识. 二. Root 的介绍 1. Root 的目的 可以让我们拥有 ...

  3. Mac 在命令行中获得Root权限

    Mac 在命令行中获得Root权限 作者 firedragonpzy 13 九月, 2012 2条评论 本文为firedragonpzy原创,转载务必在明显处注明:转载自[Softeware MyZo ...

  4. cocoa中获得root权限的几种方法

    目前我所知道的,在cocoa中获得root权限的方法有3种: 1. 通过AuthorizationCopyRights函数 2. 在UI上添加一个锁的样子的控件,然后通过开关这个锁来获取root权限 ...

  5. [置顶] 如何在Python IDLE中调试Python代码?

    好久没有用Python了,居然忘记了怎么在Python IDLE中调试Python代码.百度了一下,然后还是写下来吧,以免以后又忘记了. 1. Set break point in the sourc ...

  6. 在ubuntu中获得root权限

    在终端中输入:(1)sudo passwd rootEnter new UNIX password: (在这输入你的密码)Retype new UNIX password: (确定你输入的密码)pas ...

  7. pycharm中运行成功的python代码在jenkin中运行问题总结

    我们在用selenium+python完成了项目的UI自动化后,一般用jekins持续集成工具来定期运行,python程序在pycharm中编辑运行成功,但在jenkins中运行失败的两个问题,整理如 ...

  8. kali linux下不能以root权限运行vlc的解决办法

    习惯了在Linux下面使用VLC播放视频和音乐, 但是 VLC 的 linux 版本并不支持在root下面运行. 终端运行vlc命令报错,错误信息如下 root@kbdancer:~# vlc VLC ...

  9. windows下使用vscode编写运行以及调试Python

    更新于2018年10月: 首先去python官网下载python3  地址:https://www.python.org/downloads/windows/ 下载好后直接安装 记得勾选添加环境变量 ...

随机推荐

  1. Java基础学习总结(59)——30 个java编程技巧

    1.return 一个空的集合,而不是 null 如果一个程序返回一个没有任何值的集合,请确保一个空集合返回,而不是空元素.这样你就不用去写一大堆 "if else" 判断null ...

  2. GROUP BY 与聚合函数 使用注意点

    表的设计: 表里面的内容: 一:在不使用聚合函数的时候,group by 子句中必须包含所有的列,否则会报错,如下 select name,MON from [测试.] group by name 会 ...

  3. angular-输入验证

    $dirty 表单有填写记录 $valid 字段内容合法的 $invalid 字段内容是非法的 $pristine 表单没有填写记录 客户端的验证不能确保用户输入数据的安全,所以服务端的数据验证也是必 ...

  4. C/C++拾遗(一):关于数组的指针和数组元素首地址的一道经典题

    代码例如以下: #include <stdio.h> int main(void) { int a[5] = {1, 2, 3, 4, 5}; int *ptr = (int *)(&am ...

  5. poj3061 Subsequence ,尺取法

    A sequence of N positive integers (10 < N < 100 000), each of them less than or equal 10000, a ...

  6. 基于对话框的应用程序,点击button打开一个网页

    核心:使用Webbrowser控件 加入一个新的对话框,右键 Insert ActiveX control,选中 双击对话框生成响应的类(Web).并为webbrowser绑定成员变量(m_Web) ...

  7. 微软版UnityVs横空出世,究竟是谁成就了谁?

    在移动互联网浪潮持续发力下,手游行业也异常火热.在现在的手游行业,Unity3d无疑是最耀眼的哪颗星.一直觉得Unity面向设计师是友好的,对程序猿这边并非非常友好. 2012年用Unity时开发工具 ...

  8. 分组后取每组内排名的Top N的SQL语句

    给个MySQL例子参考 -----查询每门课程的前2名成绩 CREATE   TABLE   StudentGrade( stuId   CHAR(4),         --学号 subId   I ...

  9. C#使用tesseract3.02识别验证码模拟登录

    一.前言 使用tesseract3.02识别有验证码的网站 安装tesseract3.02 在VS nuget 搜索Tesseract即可. 二.项目结构图 三.项目主要代码 using System ...

  10. 时域,频域,s域和z域,一些网上的总结

    https://www.jianshu.com/p/29f4a7663b14 https://wenku.baidu.com/view/26961183b9d528ea81c779e0.html ht ...