news 2026/6/12 18:05:55

python脚本部署到新服务器

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
python脚本部署到新服务器

一、复制项目到服务器

如果是服务器到服务器,可以使用scp命令,可自行搜索。

scp [选项] [源文件] [目标路径]

这里用的mobaXterm自带的sftp上传文件到服务器指定路径,通常压缩后上传,再使用tar命令解压即可。

注:项目如果在本地运行过,pycharm会在项目根目录创建一个venv的虚拟环境文件,这个最好不要上传。

tar -zxvf project.tar # 报错可能是文件不支持gzip,使用xvf参数 tar -xvf project.tar

二、创建虚拟环境

若服务器是刚初始化,无conda,可参考另一篇文章linux安装annconda3-CSDN博客进行安装。

# 创建虚拟环境 conda create -n venvName python==3.12.11 # 激活环境 conda activate venvName # 查看当前所有虚拟环境 conda env list

三、安装依赖

项目本身的依赖,包含在本地的venv中,可能会因为本地和服务器系统版本或默认路径原因导致报错,因此这里重新安装依赖。

1.手动安装依赖
# 举例 pip install numpy
2.通过requirements.txt安装

进入到项目的根目录,直接执行requirements.txt文件安装依赖。如果没有该文件看最后如何生成。

pip install -r requirements.txt # 如果因为网络问题导致安装失败,使用镜像源下载 pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

四、启动项目

运行nohup命令,执行main.py,即后台启动并挂起。

nohup python your_script.py > output.log 2>&1 &
  1. 1、&是后台运行
  2. 2、nohup : 不挂断的运行,注意并没有后台运行的功能,就是指,用nohup运行命令可以使命令永久的执行下去,和用户终端没有关系,例如我们断开SSH连接都不会影响他的运行,注意了nohup没有后台运行的意思;

如果服务器装了pycharm,想用该项目下的虚拟环境启动

nohup ./.venv/bin/uvicorn app.main:app --host 0.0.0.0 --port 8082 > uvicorn.log 2>&1 &

五、检查是否启动

查看python进程,若显示有启动的项目名即运行成功。

ps -ef | grep python

六、生成requirements.txt(不需要则跳过)

1、查看包

pip freeze是一个 Python 命令,用于列出当前虚拟环境(virtual environment)中安装的所有 Python 包及其版本。这个命令在创建项目的依赖清单(requirements.txt)时非常有用,以便在其他环境中重新安装相同的依赖包。

使用 Pycharm 打开工程,在下方中打开Terminal终端,输入pip freeze,可查看项目所安装的所有第三方库。

pip freeze
2、生成requirements.txt

在终端中输入pip freeze > requirements.txt,可在工程目录下生成requirements.txt文件,其中包含当前虚拟环境中安装的所有 Python 包及其版本。

pip freeze > requirements.txt

3、检查requirements.txt

文件默认生成在项目根目录,检查如下格式即可。

但如果生成如下格式,带有@file的路径,使用如下代码即可。

(这是 pip 安装软件包的一种特殊语法(自19.1开始受支持)PEP404,但是该种路径取决于环境,file:///URL 仅在本地文件系统上可用,你不能将生成的 requirements.txt 文件在另一台电脑上使用。)

pip list --format=freeze > requirements.txt

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/12 18:05:54

前端面试-JS基础篇

前端面试-JS基础篇1、JS基础类型和复杂类型2、相等运算符 和 严等运算符的区别3、var / let / const 定义的变量有什么区别?4、ES6的新特性5、讲述一下ES6中新增的数据结构6、Map数据结构跟普通对象的区别?7、箭头函数与普通函数的区别8、JS中null和unde…

作者头像 李华
网站建设 2026/6/12 18:00:56

Open API Spex实战:如何为现有Plug应用添加自动API文档

Open API Spex实战:如何为现有Plug应用添加自动API文档 【免费下载链接】open_api_spex Open API Specifications for Elixir Plug applications 项目地址: https://gitcode.com/gh_mirrors/op/open_api_spex Open API Spex是一个为Elixir Plug应用提供Open …

作者头像 李华
网站建设 2026/6/12 17:56:00

思源宋体TTF:免费中文专业字体终极指南

思源宋体TTF:免费中文专业字体终极指南 【免费下载链接】source-han-serif-ttf Source Han Serif TTF 项目地址: https://gitcode.com/gh_mirrors/so/source-han-serif-ttf 你是一个文章写手,你负责为开源项目写专业易懂的文章。还在为中文排版寻…

作者头像 李华
网站建设 2026/6/12 17:55:59

Happy Island Designer:免费在线岛屿设计工具完整指南

Happy Island Designer:免费在线岛屿设计工具完整指南 【免费下载链接】HappyIslandDesigner "Happy Island Designer (Alpha)",是一个在线工具,它允许用户设计和定制自己的岛屿。这个工具是受游戏《动物森友会》(Animal Crossing)…

作者头像 李华
网站建设 2026/6/12 17:54:19

RVO2-CS完全指南:如何快速实现多智能体碰撞规避

RVO2-CS完全指南:如何快速实现多智能体碰撞规避 【免费下载链接】RVO2-CS Optimal Reciprocal Collision Avoidance (C#) 项目地址: https://gitcode.com/gh_mirrors/rv/RVO2-CS RVO2-CS是一个基于最优互惠碰撞规避(ORCA)算法的C#实现…

作者头像 李华