一、复制项目到服务器
如果是服务器到服务器,可以使用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 numpy2.通过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、&是后台运行
- 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 freeze2、生成requirements.txt
在终端中输入pip freeze > requirements.txt,可在工程目录下生成requirements.txt文件,其中包含当前虚拟环境中安装的所有 Python 包及其版本。
pip freeze > requirements.txt3、检查requirements.txt
文件默认生成在项目根目录,检查如下格式即可。
但如果生成如下格式,带有@file的路径,使用如下代码即可。
(这是 pip 安装软件包的一种特殊语法(自19.1开始受支持)PEP404,但是该种路径取决于环境,file:///URL 仅在本地文件系统上可用,你不能将生成的 requirements.txt 文件在另一台电脑上使用。)
pip list --format=freeze > requirements.txt