Pycharm中进行Python远程开发

http://blog.csdn.net/pipisorry/article/details/52269952python

PyCharm提供两种远程调试(Remote Debugging)的方式:
    配置远程的解释器(remote interpreter)
    配置Python调试服务器(Python Debug Server)[配置Python调试服务器]
本文主要说明远程的解释器(remote interpreter)的配置。linux

皮皮bloggit

 

pycharm 经过 SFTP 远程编辑项目的配置
{这个至关于代码同步,相似git上传,同步后你能够在服务器上直接运行上传的代码;这个配置好后,才能在pycharm远程调试时候将代码上传到服务器正确位置/正确路径上}web

打开pycharm,File -> Settings…( Ctrl + Alt + s ) -> Deployment
点击 + 按钮,添加一个django

 

设置链接
设置好IP、端口、用户名、密码, root path:/home/piting/mine/python_workspace, 就是打开remote host时候看到的运程主机的根目录。ubuntu

 

Note: Root path 如/home/piting/mine/python_workspace这个路径要在远程服务器上存在,不然并不会自动建立和同步。windows

设置第二个标签页Mappings
设置本地路径和远程路径,本地路径最好是一个项目路径,直接映射到你想开发的项目中。服务器

路径的解释:app

 

 

右击项目名称,能够看到下拉菜单中多了一些选项,能够都试试,同步到远程服务器,这样就能够在本地开发,在linux上运行了,很是方便ssh

Deployment相关设置
设置自动上传
每次都要去点击上传,虽然比较有选择性,但毕竟仍是不方便,因此设置了自动上传

tools > deployment > automatic upload(always)

查看远程目录
tools > deployment > browse remote host

这样就能够在侧边栏找到远程目录,图形化界面上传和下载。

皮皮blog

 

 

pycharm 远程调试
{这个是本地编辑代码,扔到远端服务器上执行,而后 debug 结果本地显示[其实也添加了deployment功能]}

    尤为是对于 windows 的机器调试 Linux 服务器端的程序。若是你是在 Windows 上使用 PyCharm 等 IDE 快速方便地进行开发,可是因为管理端使用了一些公司的公共组件,而这些组件又只提供了 Linux 上的 Python 接口,所以必须在 Linux 上运行 Django 程序。值得庆幸的是,大多数的 IDE 都提供了远程调试功能, PyCharm 也能够通过简单配置进行远程调试。

配置远程 Python 解释器
lz使用anaconda在服务器上搭建了一个python开发环境。由于没有root权限问题。

或者也可使用python virtualenv搭建的虚拟开发环境,因此是先将ubuntu_env配置好的env上传到服务器上scp -r ./ubuntu_env/ root@192.168.0.111:/home/pipi/ENV[ssh用法及命令 ],再修路径实现python在服务器上的配置的[python虚拟环境virtualenv安装和配置 ]。

在 PyCharm 中打开 Python 解释器的设置面板,路径为 File => Settings (Ctrl+Alt+S) => Python Interpreter:

点击右上角齿轮,Add Remote,填写 SSH 相关的设置


作完后可能须要等一些时间。这个过程当中 PyCharm 会将一些工具和调试 Server 发到你配置的 .pycharm_helper 目录中,而且对机器上已经安装的库类生成 skeletons,并传回 Windows 上进行保存。Python skeletons 是一些包括库类 API 定义的文件,用来给 PyCharm 作代码静态分析。JetBrains 的帮助文档提供了更详细的说明,参见 Important Note 一节。

最后,你须要在解释器设置面板,选中 Remote Interpreter 作为项目的默认解释器。

配置部署信息
{这个就是上面的pycharm 经过 SFTP 远程编辑项目的配置,直接用就能够}

在 PyCharm 中打开部署的设置面板,路径为 Tool => Deployment => Configuration。

Type 建议选择 SFTP,常见的 OpenSSH Server 提供了这种协议的支持。

第二个 Tab (Mappings) 须要填写部署的路径,注意这个路径对应你项目的根目录,因此你极可能须要为它建一个空文件夹。勾选上 “Use this server as default”。除此以外还有个 Web path 的设置,应该是用来配置网页上查看文件的服务,能够无视。

配置好部署面板后,建议把自动同步开启 (Tool => Deployment => Automatics Upload(always)),这样在 PyCharm 中对文件进行修改,能够立刻同步到 Linux 上。同时建议先作一次同步。

同步能够经过不少方式完成,好比在 Project 面板 (Alt+1) 上对项目根目录右键 “Upload to”,也能够在菜单中上传 (Tool => Deployment => Upload to)。若是菜单中 Upload to 不可点击,请尝试打开项目的一个 py 文件,并把焦点放在编辑器中。

在deployment mapping标签项中设置好路径后才能在project interpreter中看到自动设置的path mapping


配置运行配置
{若是不使用django,这个能够不用配置}

在 PyCharm 中打开运行配置面板,路径为 Run => Run/Debug Configurations:


若是你发现你的运行配置中没有 Django 相关的项,请在项目设置的 Django 中勾选 Enable Django Support。

运行配置的设置有两点须要注意。Python Interpreter 须要选中以前创建的远程解释器。Path mappings 处,须要把本机的 manage.py 与 Linux 上的关联起来,好比:

C:/Evolution/Python/django_website/manage.py <=> /home/onlyice/work/django_website/manage.py

这多是 PyCharm 的 bug:在使用远程解释器后,PyCharm 并不会自动将 Django 运行配置中的 manage.py 文件定位到 Linux 上的那份,而是会尝试使用下面的命令来启动 Django 调试 Server:

/usr/bin/python2 manage.py C:/Evolution/Python/django_website/manage.py

天然就找不到文件了。因此使用了 Path mappings 做为一种 hack 手段来解决。
这时就能够打断点调试啦

Trouble Shooting
Q: 点击调试运行失败,显示 “Cant set remote tunneling”

A: 调试时 PyCharm 调用将 Python Debug Server (pydevd.py) 绑定在一个随机端口上,再使用 SSH 的端口转发将数据经过 SSH 端口转到 Debug Server 去。须要检查你的 sshd 配置 (默认是 /etc/ssh/sshd_config) 是否禁用了 TCP 转发 (AllowTcpFowarding),这个配置默认是打开的。

皮皮blog

 

 

出错问题
pycharm channel is not opened
pycharm不能同步deployment中设置的文件内容了,在remote host窗口中打开文件提示the file is identical to local但实际上彻底不一样,上传屡次才能成功,或者干脆就提示channel is not opened。应该和sftp有关。

目前还没找到具体缘由,多是服务器问题,过会就本身好了。

也多是pycharm的问题,或者系统的问题?但愿解决的能够留言告知一下,谢谢!

[Can't Download From Remote Server via SFTP – JetBrains IntelliJ]

pandas出错
pycharm console import pandas Backend Qt4Agg is interactive backend. Turning interactive mode on.  : cannot connect to X server
import pandas  : cannot connect to X server

重启pycharm,或者也不知道怎么了就行了,不报错了。。。

运行出错
ssh://piting@192.168.0.172:22/home/piting/ENV/anaconda3/bin/python3 -u /home/piting/mine/python_workspace/Oth/Competition/TianChi/Regression.py
/home/piting/ENV/anaconda3/bin/python3: can't open file '/home/piting/mine/python_workspace/Oth/Competition/TianChi/Regression.py': [Errno 2] No such file or directory

点出remote host标签,发现没有这个目录,目录下也没有这个文件

解决:

mkdir -p 代码目录

再在remote host中右键 》 upload here

相关文章
相关标签/搜索