跳到主要内容
版本:Next

PyCharm对接开发环境

以下示例所用PyCharm版本:PyCharm版本 2018.3 (Professional Edition) AIStation开发环境ssh服务运行正常,对应ip:10.151.11.53;端口:54963;密码:939549。

1.Pycharm配置

打开 pycharm,选择 Tools -> Deployment -> Configuration… image点击左上角加号,选择SFTP image image输入配置名称: image在右侧的 Connection 页面中,Type 选择为 SFTP,对应 Host 和 Post 输入在第 2 步中得到的 ip、端口。在 Password 处输入在第 2 步中得到的密码。 image点击"Test Connectioin"按钮,测试连接。显示连接成功。 image此时连接配置完成。

2.通过SSH连接到开发环境

打开pycharm,选择View->Tool Windows->Terminal。 image此时pycharm中出现命令行窗口。 image选择菜单Tools->Start SSH session… image在弹出的窗口中选择刚才的配置: image查看刚才的命令行窗口,已经成功连接至AIStation开发环境所在的容器。 image

3.配置Remote Debug

打开pycharm,选择Tools -> Deployment -> Configuration…image选择之前配置的 DevelopmentEnv 的 Server。点击 Mappings。image
点击”文件夹”图标,分别选择本地和远端的路径。image
Local path设置为本地代码所在的路径。 Deployment path设置为AIStation开发环境中,代码所在的路径。 如图中所设置。 在pycharm对应的代码文件或工程文件夹点击右键,选择Deployment->Upload to…
image
在弹出的对话框中选择,之前创建的Server配置"DevelopmentEnv"。
image
出现以下提示,代表本地的代码文件已经上传至AIStation开发环境对应的目录中。 image 查看开发环境: image

4.开发环境配置相关debug包

在安装了pycharm的操作系统中可以找到Debug包。
MacOS中对应路径:
/Applications/PyCharm.app/Contents/debug-eggs/pycharm-debug-py3k.egg
/Applications/PyCharm.app/Contents/debug-eggs/pycharm-debug.egg
Windows中对应路径:
Pycharm安装目录下 \debug-eggs\ pycharm-debug-py3k.egg
Pycharm安装目录下 \debug-eggs\ pycharm-debug.egg
pycharm-debug.egg和pycharm-debug-py3k.egg分别对应本地python解释器为python2和python3 的情况。
例如需要调试Python3的程序,那么将pycharm-debug-py3k.egg拷贝至开发环境中 (通过 scp 命里或 xftp、FileZilla 等工具可以上传)。
scp -P 46313 pycharm-debug-py3k.egg root@10.151.11.53:/home/zhaorenming/DevelopmentEnv image
在开发环境中,运行easy_install pycharm-debug-py3k.egg进行安装。
运行 pip install pydevd

5.配置Remote debug

点击 Run->Edit Configurations ...image在弹出的对话框中点击左上角”+”号。选择”Python Remote Debug”。 image将这个Configuration命名为 DevelopymentDbg,在Local host name处填写本地的 ip地址,在 port 处填写一个本地未被占用的端口。 image之后复制红框中的两句代码,加入到程序中。 image点击红框所示的下拉菜单,选择刚刚创建的 DevelopmentDbg。 之后点击绿色的debug图标按钮。 image当控制台出现”Waiting for process connection... Connected to pydev debugger”时,进入到开发环境进行操作。 image进入开发环境,运行 python3 uncompress.py。 image此时 pycharm 中显示如下,程序在第一个断点处停止,可以开始远程调试。 image