前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >云服务器上运行python程序(PyCharm本地编辑同步服务器+Anaconda)挂载跑实验详细教程[通俗易懂]

云服务器上运行python程序(PyCharm本地编辑同步服务器+Anaconda)挂载跑实验详细教程[通俗易懂]

作者头像
全栈程序员站长
发布2022-09-12 10:35:28
9K0
发布2022-09-12 10:35:28
举报
文章被收录于专栏:全栈程序员必看

大家好,又见面了,我是你们的朋友全栈君。

背景:前段时间帮学长跑实验,在电脑上挂着得跑15个小时左右。白天跑,半夜跑,跑了5、6次,一次因为电脑死机,一次因为PyCharm闪退。跑了那么久全白费,想想就气。而且在本地跑实验十分占用CPU等资源,耗电又有风险。想着自己还有个服务器,这2天就捣鼓了下怎么在服务器上跑实验。总结下步骤,避免大家采坑。


主要内容:

本文将讲解如果利用现有的云服务器来跑python程序。

  1. 使用到了Anaconda
  2. 实现了PyCharm同步云服务器,实现本地编辑自动同步至云服务器,并且本地运行python程序时使用云服务器来跑代码(从而不需要消耗本地电脑资源)
  3. 或是不用PyCharm编辑,而是手动运行云服务器的python文件,挂载后台运行输出文本等

开发环境

云服务器:腾讯云(香港节点):1核1G 25G CentOS 7.6.1810 x86_64

Anaconda版本:Anaconda3-4.3.1-Linux-x86_64 官方下载地址

Anaconda对应python版本:3.6.0

PyCharm版本:2021.1.2 专业版(注意:社区版本无法实现ssh连接服务器,所以无法实现主要内容2操作

ssh工具:Xshell 5

服务器管理面板:宝塔面板(可有可无,主要更方便)

具体步骤

这里默认大家都具有一个完善可用的云服务器,不对服务器的搭建和基本配置做教程。

1.在服务器上安装Anaconda

使用Xshell或者其他终端模拟软件进行ssh连接服务器,不做具体教程。

①下载安装

  • 可以先在PC端下载指定的Anaconda-Linux包 Anaconda官方下载地址
  • 再拖入上传至服务器,再在Anaconda包所在目录使用以下命令安装(注意:使用你下载的包名)

若安装包没有执行权限,包名是白色的。先给它权限:

代码语言:javascript
复制
chmod u+x Anaconda3-4.3.1-Linux-x86_64.sh

再执行安装命令

代码语言:javascript
复制
sh Anaconda3-4.3.1-Linux-x86_64.sh

或者

代码语言:javascript
复制
./Anaconda3-4.3.1-Linux-x86_64.sh
  • 或者直接使用wget命令进行下载
  • 以下是我安装的目录:
  • 输入python进行测试是否安装完成。出现如下即为成功安装。(如果不成功,记得重启下终端连接)

如果没有出现Anaconda,或者 conda命令不能使用,需进行以下环境配置。

代码语言:javascript
复制
vim ~/.bashrc

在配置文件下方空白处添加以下内容:

代码语言:javascript
复制
#为了避免与其他服务器用户产生命令冲突,使用自己的英文名+Python替代python 
alias namePython='/root/anaconda3/bin/python'   
#这里写anaconda的安装路径
export PATH="/root/anaconda3/bin:$PATH"
代码语言:javascript
复制
source ~/.bashrc

再次验证

代码语言:javascript
复制
conda --version

conda命令可以使用。

②配置

创建虚拟环境

代码语言:javascript
复制
conda create -n py36 python=3.6

查看当前存在哪些虚拟环境

代码语言:javascript
复制
conda env list

激活虚拟环境

代码语言:javascript
复制
source activate your_env_name

查看安装了哪些包

代码语言:javascript
复制
conda list
  • 初始的包较少,现在需要安装一些常用的包,比如numpy,pandas,networkx,igraph,matplotlib等
  • 安装可以用conda或pip命令,若环境自带的pip版本过低需要对pip进行升级。(pip install –upgrade pip)
  • 在我首次搭建时,matplotlib和pandas使用pip安装,出现了报错,如下图,应该说的就是版本问题,查了一大圈都没找到原因,后来在学长的提点下,我又把anaconda重新创建了个虚拟环境,使用conda命令来安装matplotlib、pandas、numpy这几个包,但networkx、igraph还是需要pip来安装的,networkx我用conda安装报错了。

(conda和pip下载的包的版本是不一样的,如果各位出现我这种报错,就试试另一种安装方法。)

代码语言:javascript
复制
conda install package_name(包名)
代码语言:javascript
复制
pip install package_name(包名)

其他命令

代码语言:javascript
复制
conda update conda:               检查更新当前conda
conda search XXX                   搜索包,查看可安装版本
conda remove -n py36 --all         删除环境
conda deactivate                   退出虚拟环境,conda4之前版本:source deactivate

pip install --upgrade <包的名字>     更新包
pip install python_igraph          (import igraph包)

2.配置PyCharm

完成服务器的anaconda配置,云服务器已经具备了运行python程序的能力。现在我们为了能让我们在PC端编辑的PyCharm代码能够实时同步云端,进行一些配置。

①打开PyCharm,添加解释器

  • 一种是在右下角点击会出现python解释器,点击添加解释器
  • 另一种是点击setting(设置);再找到python解释器;再点击那个小齿轮;再点击添加。
  • 打开后如下图,点击SSH解释器(社区版PyCharm应该没有这个,需要专业版)
  • 输入服务器主机地址和用户名,点击下一步
  • 设置服务器上的解释器路径,定位到你刚刚在anaconda创建的虚拟环境,找到python
  • (/root/anaconda3/envs/yunpy36(你的虚拟环境名)/bin/python)
  • 在设置本地路径(本地项目路径) 和 服务器python存放位置。后面会把改目录下的python项目自动上传至服务器实现同步。
  • 再点击完成,即设置成功。

②同步文件

  • 只需要点击整个文件夹或者单个目录,再点击工具,找到部署,点击上传,即可实现将本地项目上传至服务器。可以勾选自动上传。
  • 服务器同步的目录如下图

③测试

  • 我们写一个test,进行测试(记得同步)
代码语言:javascript
复制
import math
import random
a = random.randint(2,5)
b = math.pow(a,2)
fo = open("test1.txt","w")
fo.write(str(b))
fo.close()
print("Finish!")
  • PyCharm输出,发现有ssh://root@XXX等字样,表示我们是在服务器运行的代码。
  • 并且本地PyCharm也有打印输出,让我们再去服务器看看输出的文件“test1.txt”,而本地没有该文件。

那么整个PyCharm同步云服务器编程配置完成啦!!!

3.在服务器上运行python程序并且挂载后台实现跑实验

需求:我们不想通过PyCharm来运行服务器上的python,想让服务器后台挂载python程序,让它自己去连夜跑实验(压榨劳动力)那么就与我的PC一点关系都没有啦,打打游戏看看剧,不担心PC死机闪退等烦恼。

①SSH连接服务器

  • 这里我还是用Xshell 5,省略连接步骤

②进入刚刚在anaconda创建的虚拟环境

代码语言:javascript
复制
source activate your_env_name

③使用nohup命令后台运行python程序

代码语言:javascript
复制
nohup python3 -u my.py >> my.log 2>&1 &
  • nohup命令的解读可以参考这篇博客 来了条链接
  • 但需要一提的是 -u,若没有-u,nohup输出的my.log文件是在整个python运行结束后才会输出运行结果。而这样不便于我们所示查看python程序运行状态,加了-u后便实现了实时输出。

④查看进程状态

  • 在使用nohup启动python时,会生成一个进程ID
  • 可以使用 jobs -l 来查看当前终端的全部进程(改命令只适用于改终端窗口,若再开一个窗口需适用ps命令查看全局进程,如下命令)
  • 还可以对改python程序进行暂停、恢复、杀死等操作
代码语言:javascript
复制
jobs -l 		     (当前终端查看全部进程)
ps -aux|grep 进程号  (全局各个新终端查看指定进程)
ps -ef 		        (全局全部进程)
kill -STOP 	进程号	(命令可以直接暂停一个后台任务)
kill -CONT 进程号	(命令可以直接恢复一个后台任务)
kill -9 进程号 	    (杀死进程)

好了,以上是这次的全部教程内容。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/152633.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 主要内容:
  • 开发环境
  • 具体步骤
    • 1.在服务器上安装Anaconda
      • ①下载安装
      • ②配置
    • 2.配置PyCharm
      • ①打开PyCharm,添加解释器
      • ②同步文件
      • ③测试
    • 3.在服务器上运行python程序并且挂载后台实现跑实验
      • ①SSH连接服务器
      • ②进入刚刚在anaconda创建的虚拟环境
      • ③使用nohup命令后台运行python程序
      • ④查看进程状态
相关产品与服务
云服务器
云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档