使用IntelliJ IDEA进行Python远程调试

jopen 10年前

摘要

随着近期研究的深入,越来越多的运算程序只能在位于远程环境的GPU运算服务器来执行。这些程序例如Theano、PyLearn2等需要使用 GPU加速,所以代码必须放置在服务器端运行。由于程序使用Python编写,所以之前实验室一直使用IPython Notebook进行开发。但是毕竟一款Web Based IDE功能肯定赶不上桌面IDE,所以有必要研究一下在本地开发并且远程执行的工作流程。 最近的工作需要用到安装在GPU运算服务器上的Python开发工具——Theano。而本机并不能顺畅地跑Theano程序,所以需要进行远程开发。本 文旨在通过实例展示“使用IntelliJ IDEA进行Python远程调试”的全过程。

关键字:Python,IntelliJ IDEA,远程调试

软硬件环境

  • 客户端操作系统: Mac OS X Yosemite 10.10.1
  • 客户端集成开发环境:IntelliJ IDEA 14.0.1 Ultimate
  • 服务器端操作系统: Ubuntu 14.04 LTS
  • 服务器端软件配置:Python 2.7.6,Theano 0.6.0,已安装ssh-server

操作流程

首先使用IntelliJ IDEA创建一个空项目。空项目创建完毕后会弹出创建Module的窗口,暂时将其关闭,我们先进行系统设置后再向项目中添加模块。

在菜单中点击Tools -> Development -> Configuration,进入设置界面。 使用IntelliJ IDEA进行Python远程调试

点击“+”添加新配置信息,Type中选择SFTP,并点击确认后进入详细设置界面 使用IntelliJ IDEA进行Python远程调试

在SFTP host中填写远程服务器地址,在Root path中填写远程根目录,并填写好User name和Password,然后切换到“Mappings”选项卡。 使用IntelliJ IDEA进行Python远程调试

在Mappings选项卡中可以设置本地与远程映射目录,通常LocalPath是当前项目所在目录,而Deployment path on server则是需要上传到远程服务器的目录。需要注意的是,远程目录是相对于前一个选项卡中Root Path的相对路径。 使用IntelliJ IDEA进行Python远程调试

点击IntelliJ IDEA菜单中的File -> New Module -> Python,此时在选择Module SDK时点击 "New..." -> Add Remote,在弹出的窗口中选择“Deployment configuration”,并且选择刚刚新建的配置文件。完毕之后点击Next并且设置模块名称,最终会创建项目。 使用IntelliJ IDEA进行Python远程调试

在模块中创建一个测试文件,test.py:

import theano print theano.config.device

屏幕右上角的箭头,进入运行配置,添加一个Python运行配置,并且选择执行的主程序脚本文件。在环境变量中依次配置所需的环境变量(例如 theano需要THEANO_FLAGS等)。然后再Python Interpreter中选择 Use SDK of module。此处需要注意的是,多个环境变量之间不能互相引用,单系统内置的环境变量可以互相引用。所以环境变量就都写成绝对地址就好。 使用IntelliJ IDEA进行Python远程调试 使用IntelliJ IDEA进行Python远程调试

完成之后,在项目名称上点击右键,并且选择Upload to。IntelliJ IDEA会自动将文件upload到远程服务器,此时即可执行。 使用IntelliJ IDEA进行Python远程调试

来自:http://friskit.me/2014/12/09/python-remote-debug-indellij-idea/