[Python] Remote debugging by Pycharm
From: http://blog.csdn.net/u013088062/article/details/50170551
虚拟环境配置
配置远程解释器
设想这样一种情况,你在一个平台上操作你的工程,但你希望在另外一个平台上完善并运行它,这就是为什么Pycharm做了很多工作来支持远程调试。
虚拟环境配置
在虚拟机上运行一个工程主要包含以下步骤:
(1)定义一个虚拟框架define a virtual box (2)需要在虚拟框架下配置一个远程的解释器configure a remote interpreter (3)在远程控制台加载当前工程launch your script in the remote console
1、准备工作
确定你的Pycharm已经拥有以下环境:
(1)安装了Oracle's Virtual Box (2)安装了Vagrant // <---- 可以用它来在单台物理机器编程管理多个虚拟机(vms) (3)将一下这些可执行文件添加到环境变量中 Vagrant安装文件下的vagrant.bat文件,这部分工作应该由安装程序自动完成 Oracle's VirtualBox安装文件下的VBoxManage.exe文件。
确保Pycharm的Vagrant插件可用:单击主工具栏中的设置按钮,在设置对话框中打开 Plugins页面,显示插件默认可用:
至此准备工作完成,正式开始。
2、创建一个虚拟的virtual box
在设置对话框中(单击主工具栏的设置按钮),单击 Vagrant界面,然后输入可执行文件路径以及实例路径。
如果框架已经预先定义好,以上选项就会出现在一个下拉列表中,从中选择一个即可:
如果当前没有合适的virtual box,则可通过单击绿色的加号来添加一个,输入框架名称和下载地址:
单击OK,Pycharm开始自动下载VM模板:
至此你已经新建了一个virtual box并已经将其添加到了当前环境中。
注意Tool 菜单下的Vagrant 命令,这个命令与标准的Vagrant行为相关联。
一旦创建了Vagrant box,就需要在工程存根下对其进行初始化。在主菜单上单击Tools | Vagrant,选择 Init in Project Root:
选择你准备初始化的Vagrant box:
此时会创建对应的Vagrantfile文件,可以根据要求对其进行更改:
初始化完成后,执行vagrant up命令(在Vagrant 菜单中选择Up 命令):
Pycharm会自动运行vagrant up 命令,并在控制台界面显示输出结果:
配置远程解释器
3、在虚拟机上配置远程解释器
再次打开设置对话框(单击主工具栏上的设置按钮),选择Project Interpreter页面,在这里你可以从下拉列表中选择一个对应的解释器,
但是如果当前没有可用的解释器,我们就需要单击Configure Interpreters来自定义一个:
此时会打开Python Interpreters界面,单击绿色的加号来选择一个远程的解释器:
在Configure Remote Python Interpreter 对话框中,需要进行服务器配置。这些设置可以手动设定,也可以从已经定义好的Vagrant配置文件中导入,在这里我们选择第二个方式。
单击 Fill from Vagrant configuration按钮,将会根据配置文件的内容自动填充相关设置属性值:
为了确认是否配置成功,单击Test connection... 按钮:
将其设置为默认解释器:
从现在开始我们就可以在VM虚拟机上运行所有的脚本工程了:
接下来我们通过SSH来登录virtual box。
4、链接SSH终端机
为什么需要登录呢?因为Pycharm要求你这么做。
在主菜单中选择Tools | Run SSH Terminal,如果你定义了不止一个主机(host),则选择一个你想要建立链接的(我们这里选择远程解释器):
观察Run tool window窗口的控制台运行信息:
现在你已经能够和virtual box进行直接交互了,首先我们先确认你的工程目录是否进行了完整映射。只需观察vagrant's默认的共享文件夹信息:
接下来运行一个可用的脚本文件,例如Solver.py:
大功告成。
最新文章
- Python Socket 网络编程
- 标准W3C盒子模型和IE盒子模型CSS布局经典盒子模型(转)
- MYSQL管理之主从同步管理
- Python列表操作——模拟实现栈和队列
- ArrayList和LinkedList遍历方式及性能对比分析
- 2013/8/28 JS+HTML 三级省市区联动
- 【转】SQL常用的语句和函数
- 自定义MVC路由配置
- Linux kernel 内存泄露本地信息泄露漏洞
- .NET MVC插件化开发(支持Script和css压缩)
- eclipse tomcat 网页404的一个小问题
- 十分钟让你的ASP.NET MVC网站变成PHP
- 【转载】【转自AekdyCoin的组合数取模】
- webkit框架的使用
- 网络基础tcp/ip协议四
- ELK学习博客
- 009---linux进程管理
- CE学习记录1
- 18、OpenCV Python 简单实现一个图片生成(类似抖音生成字母人像)
- jQuery源码分析笔记
热门文章
- jmap命令(Java Memory Map)(转)
- PHP 7問世,2億網站效能翻倍有望
- memset与malloc性能测试
- Puppet Openstack Mitaka Design Summit小结
- 深入分析Java Web技术(1)
- Apache Error: Invalid command ‘Allow’, perhaps misspelled or defined by a module not included in the server configuration
- Jquery Data Table插件
- oracle 判断中文函数
- Discuz!开发手册
- Spring3系列8- Spring 自动装配 Bean