有时我们会碰到在远程服务器上进行开发的情况,比如小程序的服务端的编写等。本文介绍下如何使用 PyCharm 和 FTP 搭建 Python 远程开发环境。
腾讯云主机初始化
服务器上操作
(1)设置 root 密码
- $ sudo passwd root
(2)允许 root 登录
- $ sudo vi /etc/ssh/sshd_config
将 PermitRootLogin 值置为 yes
(3)重启 ssh 服务
- $ sudo service ssh restart
免密登录
本地操作
(1)添加公钥到服务器
首先确认下本地有没有公钥、私钥对,没有的话,先生成
- $ ssh-keygen
密钥默认会保存在 ~/.ssh 目录下。然后添加公钥到服务器
- $ ssh-copy-id root@server_ip
后面登录就不用密码了,ssh 直接通过
- $ ssh root@server_ip
(2)别名登录
文件 ~/.ssh/config 末尾添加
- Host tencent_server
- hostname server_ip
- User root
- IdentitiesOnly yes
保存后使用别名就可以登录了
- $ ssh tencent_server
服务器 Python 环境搭建
安装 Pipenv
如果系统已经有了 pip,我们将 pipenv 安装至我们的用户目录
- # pip install --user pipenv
查看用户基础目录
- # python -m site --user-base
- /root/.local
pipenv 安装后就在 /root/.local/bin 目录下,将其添加到 Path 中,打开 /root/.bashrc,在最后添加
- export PATH=$PATH:/root/.local/bin
让配置生效
- # source /root/.bashrc
测试一下 pipenv 是否能找到
- # pipenv --version
- pipenv, version 2018.11.26
如果你的系统没有 pip 的话,可以先安装,再进行上面的操作
- # apt intall python-pip
当然,还有更简单粗暴的方式
- # curl https://raw.githubusercontent.com/kennethreitz/pipenv/master/get-pipenv.py | python
至于常用的命令,你可以去看看官方文档,也可以看下我之前的文章《Pipenv 快速上手》,里面列了些基础的使用方式,前期使用足够了。
Pyenv 安装
如果没有安装 Pyenv,当我们使用 Pipenv 创建未安装的版本的 Python 环境 的时候,会创建失败。比如,如果系统只有 2.7.12 的 Python,我们在当前目录创建一个 Python 3.6.0 的虚拟环境
- # pipenv --python 3.6.0
会提示找不到 3.6.0 的 Python。
如果安装了 Pyenv 的话,会提示你使用 Pyenv 进行创建。
- Warning: Python 3.6.0 was not found on your system...
- Would you like us to install CPython 3.6.0 with pyenv? [Y/n]:
进入正题,安装 Pyenv
- # curl -L https://raw.github.com/yyuu/pyenv-installer/master/bin/pyenv-installer | bash
打开 ~/.bashrc,在最后添加
- export PATH="/root/.pyenv/bin:$PATH"
- eval "$(pyenv init -)"
- eval "$(pyenv virtualenv-init -)"
让配置生效
- # source ~/.bashrc
为了能让 Pipenv 直接使用我们需要的 Python 版本,我们可以使用 Pyenv 直接安装
- # pyenv install 3.6.0
如果构建出错,一般是基础工具不全的问题,使用下面命令进行安装,然后再试一次就行了
- # apt install make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev
当然,你也可以不用自己提前安装,根据 Pipenv 的提示操作就行。
FTP 服务搭建
连接到服务器
(1)更新软件源
- # apt update
(2)安装 vsftpd
- # apt install vsftpd -y
(3)添加 FTP 用户
确定 nologin 位置
- # whereis nologin
这里为 /usr/sbin/nologin
添加用户,指定用户目录为 /home/ftpuser
- # useradd -d /home/ftpuser -s /usr/sbin/nologin ftpuser
设置密码
- # passwd ftpuser
创建用户目录并修改所有权
- # mkdir /home/ftpuser
- # chown -R ftpuser:ftpuser /home/ftpuser
(4)配置 vsftpd
编辑 /etc/vsftpd.conf,打开以下配置(也就是取消掉该项前面的注释)
- write_enable=YES
- chroot_local_user=YES
- chroot_list_enable=YES
- chroot_list_file=/etc/vsftpd.chroot_list
将用户 ftpuser 添加到 /etc/vsftpd.chroot_list 文件末尾
(5)修改 shell 配置
打开 /etc/shells 文件,如果没有 /usr/sbin/nologin 项(这是从上面内容中得知的位置),则添加到文件最后面
(6)启动
- # service vsftpd start
(7)本地测试
- $ ftp ftpuser@server_ip
输入密码后,如果看到类似下面的结果,说明 FTP 服务安装成功
- 230 Login successful.
- Remote system type is UNIX.
- Using binary mode to transfer files.
- ftp>
PyCharm 配置
(1)本地用户目录下(~)新建空项目 pyproject
- $ mkdir pyproject
然后使用 PyCharm 打开
(2)PyCharm 添加服务器配置
依次点击菜单 Tools->Deployment->Configuration 进入配置页,点击左边栏的 + 号选择类型 FTP,输入服务器名称(自己取个名就行)后填写详细信息
(3)PyCharm 配置远程解释器
便于演示,我们在服务器上创建个项目 pyproject,并初始化为 Python 3.6.0 的环境
- # mkdir /home/ftpuser/pyproject
- # cd /home/ftpuser/pyproject
- # pipenv --python 3.6.0
查看虚拟环境目录
- # pipenv --venv
- /root/.local/share/virtualenvs/pyproject-ZUjobz8m
打开 PyCharm 设置界面
点击齿轮图标后,按下面步骤添加
因为之前配置了免密登录,这里我就选择了私钥进行认证。
根据之前的设置填写服务器上的解释器路径以及项目目录,之后点击 Finish 即可。
如果提示会覆盖服务器的目录,覆盖即可。
配置完成后,我们在本地的修改都会同步到服务器上面。便于测试,我们在项目下新建文件 test.py
- # coding=utf-8
- print('Hello')
然后运行
这会调用服务器上的解释器去运行 Python 脚本。
很多时候,我们都想本地与服务器的项目文件保持一致,我们可以使用 FTP 比对工具
这里面会显示本地和服务器的差异文件,我们可以按需要将本地的上传到服务器,也可以将服务器上的文件下载到本地。
这个例子中,服务器多了一个 Pipfile 文件
点击同步后,本地和服务器上的文件也就保持一致了。
有的时候,我们可能希望 PyCharm 的同步操作半自动一些,我们可以设置为手动触发。
设置为第二个选项后,我们使用 Command + S 的时候手动触发同步了,这样更灵活一些。
本文来源于:使用 PyCharm 和 FTP 搭建 Python 远程开发环境-变化吧门户
特别声明:以上文章内容仅代表作者本人观点,不代表变化吧门户观点或立场。如有关于作品内容、版权或其它问题请于作品发表后的30日内与变化吧联系。
- 赞助本站
- 微信扫一扫
-
- 加入Q群
- QQ扫一扫
-
评论