摘要:由于开发需要,本地使用IDE编写代码时可能要求不同的Python
环境,虚拟环境有时也不是最佳选项,如何在本地pycharm
中直接连接远程服务器环境呢?
文章说明
文章来源:鴻塵
文章作者:鴻塵
原文链接:https://hwame.top/20200525/pycharm-connect-linux-from-windows.html
1.背景
Linux服务器集群搭建在虚拟机中,阿里云服务器配置也很低,所以都没有安装GUI图形界面,要想使项目跑在Linux集群上,必须先将项目代码打包上传,然后才能运行。但是存在以下问题:
- 由于硬件和经济的限制,Linux虚拟机和阿里云服务器的配置都不高,没有安装图形界面,更别说IDE了
- 而且由于Windows和Linux本身的区别,开发调试过程中会出现不可预料的问题
- Windows打包上传、Linux运行测试,流程繁琐,效率低下
因此,如果能直接在Windows的IDE中使用Linux环境,问题就会迎刃而解。
注意:可能因为PyCharm专业版和社区免费版的原因而无法使用,本文使用的是PyCharm 2019.1 (Professional Edition)
。
2.操作步骤
- 虚拟机开机。
- PyCharm中新建或打开一个项目,点击“
File
”→“Settings
”,展开至“Project: xxx
”→“Project Interpreter
”,可以看到所有可用的编译器以及安装的第三方库,如图所示。其中Project Interpreter
为当前项目的编译器,Path mappings
为当前项目路径的映射,亦即本地Windows文件与远程Linux文件的路径对应关系。并且可以有多个映射。 - 在配置之前只有本地的python环境和虚拟环境,当连接远程服务器后才有Linux的python环境。
- 点击
Project Interpreter
右边的设置按钮,选择Add
添加Python Interpreter,可以看到能配置的编译器共有9种,我们选择SSH Interpreter
,填写主机IP和用户名,如图所示。 - 认证方式可以选择密码或密钥对。填写正确密码或者选择密钥文件后点击next。
- 设置python编译器及项目文件夹映射,
Interpreter
选择需要使用的位于服务器上的python编译器,Sync folders
为本地项目路径与远程项目路径的映射关系。详细设置及含义见后文,如图所示。 - 点击完成即可看到添加好的
Interpreter
。点击Project Interpreter
右边的设置按钮,选择Show All...
即可查看所有可用编译器,如图所示。 - 选择需要的Interpreter,点击
Apply
即可愉快的开发了。
3.设置python编译器及项目路径映射
🌸pytho编译器
服务器上运行如下命令以查看pytho编译器的位置,选择需要的:
1 | which python |
注意:/usr/bin/python
本身也是一个软连接,指向了实际的python可执行文件路径。
注意:`如果需要使用虚拟环境,则需具体到虚拟环境位置及对应的可执行文件。1
2
3
4
5
6# 查看python可执行文件路径
ls -lh /usr/bin | grep python
# 由图可以看到:
# python → python3 → python3.6
# python2 → python2.7
因此,只要保证能指向正确的可执行文件即可。
🌸项目路径映射
Sync folders
中的<Project root>
为本地项目的根路径,箭头右边为远程项目路径,默认为/tmp/pycharm_project_xxx
,点击“右侧文件夹图标”可进行修改,如图所示。
注意:可添加多对映射。
🌸文件自动上传服务器
设置好python编译器和项目路径映射后,勾选“自动上传项目文件至服务器(Automatically upload project files to the server)”。
当本地文件有变更时,只要有保存操作就能自动上传服务器,如图所示。
🌸关于部署配置
当配置完远程python编译器后,就默认创建了部署环境,在Event Log中可以看到14:35 Deployment configuration to 39.xxx.xxx.xxx has been created.
点击“File
”→“Settings
”,展开至“Build, Execution, Deployment
”→“Deployment
”,可以看到已自动设置好部署环境,可以自行修改或删除。
4.运行和调试
运行和调试时,PyCharm会自动ssh连接然后运行:1
2
3
4ssh://root@192.168.xx.xx:22/bin/python -u /tmp/pycharm_project_xxx/test.py
******
Process finished with exit code 0