腾讯云免费服务器部署Python 3.7与PyTorch完整指南
简介针对疫情期间无法返校使用服务器的计算机视觉方向学生这份腾讯云部署指南提供了一套低成本、短周期可落地的解决方案。作者结合自身实践从新用户免费领取15天服务器、完成实名认证到重装系统、通过FileZilla上传本地项目、导出并安装依赖环境的完整流程均有清晰梳理并特别说明了如何在默认Python2.7的云主机上配置Python3.7以及安装不带CUDA版本的PyTorch来运行代码。资源为一份1.18MB的docx文档共1个文件采用图文步骤形式覆盖服务器选用、系统切换、文件传输、依赖安装等关键环节并包含若干易错点提醒如终端密码获取方式、镜像选择等。适合有一定Python基础但初次接触云服务器的学习者按图索骥。文档已有6535人学习下载经过实践验证对因实验室资源紧张而无法跑通模型的学生而言仍是一份节省试错成本的参考手册。1. 腾讯云服务器上部署 Python 3.7从免费额度到跑通 PyTorch 的完整链路如果你是因为算力不够才点进来的这篇文章就是给你准备的。作为计算机视觉方向的学生我曾经被“本地跑一个训练要两小时、跑完发现参数设错”折磨到怀疑人生后来用腾讯云服务器的短期免费额度把 Python 3.7 PyTorch 代码部署到云端跑通整个过程从购买到执行代码一份完整的踩坑记录都在这里。很多教程只讲“怎么买服务器”不讲“买完之后怎么把代码弄上去跑起来”更不讲“免费服务器到底能不能跑 PyTorch”——这两件事才是真正的坑。这篇笔记覆盖新用户免费领服务器、远程连接、上传代码、装 Python 3.7 和 CPU 版 PyTorch 的完整流程新手照着做能跑通老手也能看到环境依赖和镜像选择的边界。2. 免费服务器申请与系统选择15 天额度该怎么领、怎么续2.1 新用户免费领 15 天的认证链路腾讯云对新用户有一个免费领取短期服务器的入口领取路径通常藏在公众号或控制台的“个人认证福利”里。第一次操作的人最容易卡在“找不到入口”或“领了但看不到实例”。整个领取链路是这样的先微信扫码登录腾讯云官网进入控制台后系统会引导你完成实名认证和手机号认证认证通过后在“云产品”中找到“云服务器”下方会自动显示已领取的免费实例。2.2 免费实例的配置边界与续费策略免费领取的服务器配置不高一般是 1 核 1G 或 1 核 2G 的入门套餐系统默认预装 CentOS。对于普通学生的代码运行需求——比如跑 PyTorch CPU 推理、小批量数据处理、Web 服务测试——这个配置是够用的。但如果你要跑大规模训练或并发服务这个配置会明显吃力。2.3 从 CentOS 重装为 Ubuntu 的完整操作免费领取的服务器默认是 CentOS 系统如果你更习惯 Ubuntu 的 apt 包管理可以在实例列表中点击实例左下角的“更多”选择“重装系统”镜像部分选择“公共镜像”在列表中找到 Ubuntu 版本确认后等待重装完成。重装只会影响系统盘数据你的数据盘和网络配置不受影响重装前确认实例内的数据已经备份即可。3. 登录虚拟机与本地依赖导出连上终端只是第一步3.1 控制台登录与初始密码处理实例创建或重装完成后在控制台点击“登录”按钮选择“立即登录”会打开一个网页版终端窗口。终端密码是申请服务器时系统发送的短信或公众号消息里的初始密码第一次登录后建议立即修改。这里有一个常见的坑如果你是通过网页终端登录密码输入时不会显示任何字符这是正常现象直接输入后回车即可。3.2 本地导出 requirements.txt 的正确姿势在本地命令行中进入你的代码项目路径执行pip freeze requirements.txt将当前环境中的依赖包导出。这个命令会把你本地环境中所有用 pip 安装的包全部列出来包括一些与代码运行无关的包。更精准的做法是使用pipreqs工具它会扫描项目代码中实际 import 的模块并生成依赖列表。3.3 免费实例的目录结构与权限说明登录后默认会进入一个普通用户目录Ubuntu 系统的默认用户名为 ubuntuCentOS 系统默认是 root。如果你是 Ubuntu 系统会发现很多操作需要 sudo 权限比如安装系统级依赖包、修改系统目录等。我一般建议在个人用户目录下创建 project 文件夹来存放代码既避免权限问题也方便后续管理。4. 本地文件上传与 Python 3.7 环境迁移FileZilla 和 pip3 的配合流程4.1 使用 FileZilla 上传项目文件本地代码需要传输到服务器上才能运行。FileZilla 是一个跨平台的 FTP/SFTP 客户端下载安装后在主机栏填入服务器的公网 IP用户名填 ubuntuCentOS 系统填 root密码填之前修改后的密码端口选择 22SFTP 默认端口点击快速连接即可进入服务器的文件系统。4.2 服务器初始 Python 版本与升级路径腾讯云的 Ubuntu 或 CentOS 系统自带的 Python 版本一般是 2.7 或 3.6。如果要运行 Python 3.7 代码有两种方案一种是直接用系统自带的 Python 3.6 运行代码如果代码兼容 3.6 就不需要额外安装另一种是编译安装 Python 3.7。编译安装需要先安装编译依赖比如 build-essential、libssl-dev、zlib1g-dev 等下载 Python-3.7.x.tar.xz 源码包 ./configure、make、make install 三步完成。4.3 通过 pip3 安装依赖与常见报错处理安装完 Python 3.7 后还需要安装 pip3 才能管理 Python 包。在 Ubuntu 系统中执行sudo apt install python3-pipCentOS 使用yum install python3-pip。之后 cd 到上传的项目目录执行pip3 install -r requirements.txt安装依赖。4.4 没有 Anaconda 环境的替代方案免费服务器没有预装 Anaconda如果本地开发环境中有 Anaconda 的 conda 环境直接使用 requirements.txt 安装会非常麻烦。一个可行的替代方案是逐个使用 pip3 安装需要的包虽然效率低但能保证环境可控。另一个方案是在服务器上安装 Miniconda它的体积比 Anaconda 小得多安装完可以创建虚拟环境并直接使用 conda 的 requirements 导出和恢复功能。5. 安装 CPU 版 PyTorch跑代码前最容易翻车的一步5.1 确认服务器没有 GPU选择合适的 PyTorch 版本免费服务器没有配置 GPU 服务因此不能安装正常的 CUDA 版 PyTorch需要安装不带 CUDA 的版本。安装方式是通过 pip3 指定下载 CPU 版本 wheel 文件。对于 Python 3.7可以使用 PyTorch 官方提供的下载链接如pip3 install https://download.pytorch.org/whl/cpu/torch-1.0.1.post2-cp37-cp37m-linux_x86_64.whl安装完成后还需要安装配套的 torchvision。5.2 安装 CPU 版 PyTorch 的具体命令与验证方法# 先安装 torch注意链接中的 cp37 表示 Python 3.7 pip3 install https://download.pytorch.org/whl/cpu/torch-1.0.1.post2-cp37-cp37m-linux_x86_64.whl # 安装 torchvision默认会匹配对应版本的 torch pip3 install torchvision5.3 没有 GPU 时的模型运行策略CPU 环境下运行 PyTorch 模型除了慢没有别的致命问题。对于目标检测这类计算量大的任务建议把输入图片的尺寸调小、batch size 改为 1、关闭数据并行 DataParallel只用单卡 CPU 模式推理。训练任务在 CPU 上跑动辄几百小时不现实一般只做推理验证和 Demo 展示。5.4 运行代码时的内存与性能监控免费服务器内存一般是 1G 或 2GPyTorch CPU 版模型在加载权重时容易内存不足。建议在运行前用free -h查看内存使用情况在代码里加入torch.set_num_threads(4)限制 CPU 线程数避免内存和 CPU 资源被占满导致系统卡死。6. 避坑指南免费服务器部署代码的常见问题与排查记录6.1 用 pip3 在服务器上安装包时提示找不到命令现象执行pip3 install -r requirements.txt时系统提示pip3: command not found。原因系统没有安装 python3-pip 包或者 PATH 环境变量中没有包含 pip3 的路径。解决在 Ubuntu 上执行sudo apt update sudo apt install python3-pip如果用编译方式安装的 Python 3.7可以通过python3.7 -m pip install来调用 pip因为编译安装通常不自动生成 pip3 命令。6.2 PyTorch 安装完成后 import torch 报错现象import torch时报错ModuleNotFoundError: No module named torch。原因pip3 默认安装到了系统级 site-packages但你运行的 Python 版本与 pip3 指向的 Python 版本不一致。解决检查which python3和python3 --version确认实际使用的 Python 是 3.7 版本如果安装了多个 Python 版本建议使用虚拟环境python3 -m venv myenv并在虚拟环境中安装依赖避免版本混乱。6.3 FileZilla 连接服务器一直超时现象FileZilla 连接时提示连接超时或拒绝连接。原因云服务器的安全组规则没有放行 22 端口或者你填写的密码有误。解决登录腾讯云控制台找到该实例的安全组配置添加入站规则放行 22 端口检查密码是否正确必要时在控制台重置密码。6.4 运行代码时内存不足导致进程被 kill现象执行 python 文件时进程直接消失或提示Killed。原因免费实例内存过小PyTorch 加载模型时内存溢出被系统 OOM Killer 杀掉。解决在代码中减小输入尺寸、降低 batch size或者使用torch.no_grad()模式推理减少内存开销还可以通过设置ulimit -v限制进程虚拟内存来提前发现问题。如果代码确实需要较大内存建议升级服务器内存配置。6.5 requirements.txt 安装一半就中断无法继续现象执行pip3 install -r requirements.txt时网络中断重装时提示部分包已存在或版本冲突。原因云服务器访问外网 pip 源不稳定。解决切换到国内镜像源如清华源pip3 install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple同时使用--timeout 60参数延长超时时间。7. 进阶技巧验证环境一致性、后台运行与定时任务部署完成后最值得做的三件事是验证环境一致性、让代码后台运行以及设置定时任务。本地环境是 Anaconda服务器环境是纯 Python 3.7 pip两者的包版本差异可能会让代码跑出一堆莫名奇妙的报错。我会用一条命令把整个验证过程固化下来在本地先跑一遍pip freeze requirements.txt上传到服务器后跑pip3 install -r requirements.txt然后把代码中所有依赖的版本号与本地比对如果发现关键包版本不一致直接在服务器上用pip3 install 包名具体版本锁定。服务器终端关闭后正在运行的代码会被终止如果你的代码需要跑几十分钟甚至几小时需要设置后台运行常见做法是使用 nohup 命令nohup python3 你的文件.py output.log 21 输出结果重定向到 output.log 文件里方便随时查看进度。如果有定时执行的需求可以配合 crontab 设置定时任务比如每天凌晨执行数据抓取或模型推理任务crontab -e进入编辑模式后添加一行30 2 * * * /usr/bin/python3 /home/ubuntu/project/你的文件.py表示每天凌晨 2:30 运行一次。常见的时间格式是“分 时 日 月 周”自行按需求调整即可。从那以后我每次部署代码到云服务器都会强制走一遍“导出 requirements → 上传 → 建虚拟环境 → 安装 CPU 版 PyTorch → nohup 后台运行”这套流程省去了很多反复排查的时间希望帮到你。 ## 1. 腾讯云服务器部署 Python 3.7学生党白嫖 15 天算力的求生指南如果你是计算机视觉方向的学生一定经历过这种时刻本地笔记本跑一个训练脚本风扇狂转两个小时结果一看 loss 曲线直接发散想换个参数量更大的模型显存直接不够用。疫情期间被困在家里没有实验室服务器可用我当时就是用腾讯云的免费服务器额度把 Python 3.7 PyTorch 代码跑起来的从申请免费额度到最终python xxx.py跑通完整步骤和坑都在这篇笔记里。我把这套流程完整走了一遍从新用户免费申请 15 天服务器、重装 Ubuntu 系统、用 FileZilla 上传代码、安装 Python 3.7、到给服务器装上 CPU 版 PyTorch每一步的报错和排查都记录下来。整个过程不依赖于本地有 GPU也不要求服务器有多高的配置普通学生项目完全够用。2. 免费服务器申请与系统重装从 15 天额度到 Ubuntu 环境2.1 新用户认证与免费额度领取作为腾讯云新用户通过微信登录并完成实名认证和手机号认证后可以在官方渠道领取到 15 天的免费服务器使用权限。具体路径是登录云服务器控制台页面找到“个人认证福利”点击领取即可。注意免费额度领取的前提是完成实名认证与手机号认证这两个步骤缺一不可。免费领取的服务器性能不高通常是 1 核 2G 或 2 核 4G 的入门配置但对于跑 Python 代码、做模型推理验证、临时搭个 Web 服务来说一般够用。如果后续需要更高配置控制台可以直接付费续费或更换套餐。2.2 系统默认 CentOS重装为 Ubuntu 的具体操作系统默认的镜像为 CentOS如果你更习惯使用 Debian 系的 Linux 系统需要先重装系统。在云服务器实例列表中点击实例左下角的“更多”选择“重装系统”在镜像类型里选择“公共镜像”然后在下方列表中找到 Ubuntu 系统比如 Ubuntu 18.04 或 20.04点击确认后系统会自动开始重装。重装过程大约需要 13 分钟重装完成后系统的用户名会默认变成 ubuntu 而不是 root这一点在后续登录、上传文件时要注意区分。重装系统会清空系统盘数据但不会影响数据盘如果你的实例有挂载数据盘重装前最好先备份。2.3 登录虚拟机的终端与初始密码配置重装完成之后在控制台实例列表中点击“登录”选择“立即登录”会进入一个网页版终端会话。这里的登录密码不是控制台的登录密码而是服务器实例本身的密码——如果是免费领取的初始密码一般会以短信或邮件形式发给你。如果你用微信公众号申领的密码会在公众号的消息记录里。网页终端适合应急管理但真正的代码运行建议用本地终端通过 SSH 登录。常见做法是使用 ssh 命令直接连入服务器ssh ubuntu你的公网IP参数说明ubuntu是重装后的系统默认用户名如果你的系统没有重装而是使用默认 CentOS用户名应为root。公网 IP 在控制台实例列表中可以查到是类似129.211.xx.xx的地址。第一次连接时终端会提示确认主机指纹输入yes回车后输入密码即可登录。如果服务器默认密码太复杂登录后建议立即修改passwd修改密码时系统不会显示输入内容这是正常的输入两次新密码后回车即可。这一步能避免后续 FileZilla 或代码部署时反复查初始密码的麻烦。3. 本地依赖导出与文件上传把项目从笔记本搬到服务器3.1 pip freeze 导出本地依赖列表在本地命令行中cd 到你的代码所在路径执行以下命令导出当前 Python 环境的所有依赖包pip freeze requirements.txt逻辑说明pip freeze会列出当前 Python 环境中所有通过 pip 安装的包及对应版本号重定向输出到 requirements.txt 文件。这样服务器端就能通过pip3 install -r requirements.txt一键安装完全相同的依赖环境。我一般建议在导出依赖前先激活你要用的那个虚拟环境否则会把全局环境里一堆无关的包也导进去。如果你本地用的是 Anaconda先执行conda activate 你的环境名再执行上面的命令导出的列表更干净。3.2 用 FileZilla 上传项目文件服务器和本地之间的文件传输我一般用 FileZilla。下载安装后在界面顶部填写以下连接信息主机你的服务器公网 IP例如129.211.xx.xx用户名ubuntu如果是 CentOS 原生系统则填root密码上一步修改后的服务器登录密码端口22SSH 默认端口无需改动点击“快速连接”后右侧窗口会显示服务器文件系统左侧是本地目录。把本地项目文件夹直接拖拽到右侧你希望存放的路径比如/home/ubuntu/project/即可完成上传。上传完成后回到 SSH 终端验证一下文件是否完整ls -l /home/ubuntu/project/如果文件出现在列表中说明上传成功。这一步是后续所有操作的基础文件没传全后面怎么调都会报 module not found 之类的错误。3.3 服务器初始 Python 版本与 Python 3.7 的安装腾讯云服务器初始的 Python 版本一般是 2.7Ubuntu 18.04 自带 Python 3.6Ubuntu 20.04 自带 Python 3.8。如果需要运行 Python 3.7 的代码直接使用系统自带的 Python 3.6 或 3.8 可能会遇到语法不兼容的问题所以需要单独安装 Python 3.7。我一般通过源码编译的方式来装 Python 3.7sudo apt update sudo apt install -y build-essential libssl-dev zlib1g-dev libbz2-dev \ libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev \ libncursesw5-dev xz-utils tk-dev libffi-dev liblzma-dev python3-dev wget https://www.python.org/ftp/python/3.7.12/Python-3.7.12.tgz tar -xzf Python-3.7.12.tgz cd Python-3.7.12 ./configure --enable-optimizations make -j4 sudo make install参数说明--enable-optimizations会启用 Python 的优化编译运行速度会更好但编译时间会变长make -j4是并行编译4 表示用 4 个核心同时编译如果你的服务器只有 1 核改成make即可。编译安装通常需要 1020 分钟属正常现象。安装完成后验证版本python3.7 --version如果输出Python 3.7.12说明安装成功。注意系统自带的python3命令仍然指向旧版本需要用python3.7来显式调用。这一步是最容易翻车的网上很多教程没有说明python3和python3.7的区别导致后续 pip3 安装的包全进了旧版本的库里。4. 依赖安装与 CPU 版 PyTorch在无 GPU 服务器上跑深度学习代码4.1 安装 pip3 与环境依赖安装完 Python 3.7 后需要先确认 pip 是否可用。如果是通过源码编译安装的一般会自带 pip。验证方式如下python3.7 -m pip --version如果提示没有 pip则通过以下命令安装sudo apt install -y python3-pip注意这里的 pip3 仍然可能指向旧版本的 Python 3.6 或 3.8为了确保安装到 Python 3.7 对应的库里建议统一使用python3.7 -m pip install --upgrade pip之后所有依赖安装都用python3.7 -m pip install这个前缀而不是直接使用pip3 install。这是和本地环境最大的一个差异点我在这上面栽过跟头用pip3 install装了 numpy但python3.7 xxx.py运行时仍然提示找不到 numpy。4.2 requirements.txt 一键安装依赖进入你上传的项目目录执行以下命令批量安装所有依赖cd /home/ubuntu/project/ python3.7 -m pip install -r requirements.txt如果项目比较大、依赖比较多建议加一个镜像源加速python3.7 -m pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple参数说明-i指定了 pip 的下载源为清华镜像服务器在国内访问官方 PyPI 源的速度通常很慢经常会出现 timeout 导致安装失败。使用国内镜像源后下载速度会快很多依赖安装基本几分钟内就能完成。这里有一个前提要提醒如果本地开发环境用的是 Anacondarequirements.txt里通常只包含通过 pip 安装的包conda 环境里的一些包比如 cudatoolkit、mkl在 requirements 里不会有对应项。这种场景下推荐逐个使用python3.7 -m pip install安装或者先在本地跑一遍pip freeze再上传否则很容易装完一堆仍然报缺少模块。4.3 安装 CPU 版 PyTorch无 GPU 的正确选择这台免费服务器没有配置 GPU因此如果直接运行 PyTorch 代码需要安装不带 CUDA 的版本。带 CUDA 版的 PyTorch 在 import 时通常会隐式加载libcudart.so没有 GPU 或 CUDA 驱动会导致启动失败。CPU 版 PyTorch 的安装方式是通过官方 wheel 直接指定python3.7 -m pip install https://download.pytorch.org/whl/cpu/torch-1.0.1.post2-cp37-cp37m-linux_x86_64.whl python3.7 -m pip install torchvision参数说明torch-1.0.1.post2-cp37-cp37m-linux_x86_64.whl对应的是 Python 3.7、Linux x86_64 架构的 CPU 版 wheelcp37表示 CPython 3.7cp37m表示使用 pymalloc 的 CPython 3.7。如果你的 Python 是 3.8 或 3.9需要去 PyTorch 官方提供的 whl 列表里找对应版本。torchvision会依赖 torch安装时自动检测到已有 torch 后不会重复下载。安装完后在终端验证是否可用python3.7 -c import torch; print(torch.__version__)如果输出类似1.0.1.post2说明安装成功。这一步也是最容易疑惑的地方——明明装了 torch为什么import torch仍然报ModuleNotFoundError绝大多数情况下是 pip 工具版本指向的系统 Python 和你执行脚本的 Python 版本不一致用python3.7 -m pip能解决掉这个坑。4.4 关于 Anaconda 与服务器环境的差异处理如果你的本地环境主要基于 Anaconda而服务器上没有安装 Anaconda那么torch相关的安装方式会有区别。在 conda 环境里PyTorch 通常通过 conda 源安装它会自动带上 MKL、OpenMP 等底层优化库而服务器上直接用 pip 安装的 torch不会自动安装这些底层优化库因此运行速度可能略慢。另一种做法是在服务器上安装 Miniconda然后把 conda 环境完整导出再导入这样环境一致性好很多但会占用额外的磁盘空间和内存。如果单纯是想快速跑通项目直接 pip 装依赖就够了如果你要长期使用这个服务器做实验我更建议装 Minicondawget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh bash Miniconda3-latest-Linux-x86_64.sh安装完成后用conda create -n myenv python3.7创建一个干净的环境再conda install pytorch-cpu torchvision-cpu -c pytorch装 CPU 版 PyTorch。这样做的好处是以后本地 conda 环境导出的 yaml 文件可以直接在服务器上复现不会再出现 pip 装环境各种缺包的问题。5. 避坑指南免费服务器部署代码的常见问题与排查记录5.1 FileZilla 上传成功后目录里看不到文件现象本地拖拽上传时提示成功但 SSH 终端ls看不到对应文件。原因FileZilla 默认连接的是 SFTP 协议连接成功后登录的是 ubuntu 用户的家目录。如果你把文件拖到了“远程站点”的某个目录但那个目录和你在终端里cd进入的目录不是同一个就会产生“上传成功却看不到”的假象。解决先确认 FileZilla 右侧边栏当前显示的目录路径比如/home/ubuntu/然后在终端执行cd /home/ubuntu/ ls -l保持一致后就正常了。另外检查你上传的文件是否因为权限问题被隐藏普通文件不需要改权限如果上传的是可执行脚本可能需要chmod x 文件名。5.2 用源生 pip3 安装的 pytorch 版本与本地不一致现象按照博客教程执行pip3 install torch torchvision安装后import torch报错或者torch.__version__与本地不符比如本地是 1.8.0 而服务器上是 1.0.1。原因服务器系统默认的pip3指向的是系统自带的 Python 版本而不是你编译安装的 Python 3.7。直接用pip3 install会把包装到 Python 3.6 或 3.8 的 site-packages 里。解决统一使用python3.7 -m pip install来安装并在安装前先检查当前 Python 版本python3.7 --version python3.7 -m pip --version确保 pip 对应的 Python 版本与自己代码运行使用的 Python 版本一致这是整个部署流程里最容易踩的大坑。5.3 安装了 CPU 版 PyTorch 但仍然报 CUDA 相关错误现象代码中出现了torch.cuda.is_available()相关判断运行时报错AssertionError: Torch not compiled with CUDA enabled。原因你安装的是 CPU 版 torch但代码逻辑里没有做 CUDA 可用性判断直接调用了.cuda()方法或to(cuda)。解决在代码开头做一次判断import torch device torch.device(cuda if torch.cuda.is_available() else cpu) model model.to(device)如果不想改代码还有一种更直接的方法设置环境变量让 torch 默认在 CPU 上运行export CUDA_VISIBLE_DEVICES python3.7 train.py但这种方法有时不生效特别是代码里硬编码了.cuda()所以我更建议改成上述动态设备判断的方式。5.4 云服务器上 apt 安装包时报锁错误或源错误现象执行sudo apt update或安装依赖时提示Could not get lock /var/lib/dpkg/lock-frontend或者Unable to locate package python3-pip。原因前一个 apt 进程没有正常退出锁文件残留导致后续安装无法进行。解决先强制清理锁文件sudo rm /var/lib/dpkg/lock-frontend sudo rm /var/lib/cache/apt/archives/lock sudo dpkg --configure -a然后重新执行sudo apt update sudo apt install -y python3-pip。如果是找不到包先执行sudo apt update刷新软件源再尝试安装。服务器刚开通时 apt 源是空的不 update 直接 install 大概率会失败。5.5 运行多个代码任务时内存不足导致进程被杀现象执行 python 脚本运行到一半终端提示Killed或者进程直接消失。原因免费服务器的内存一般为 2G 左右Python PyTorch 推理 数据集加载内存占用很容易超出物理内存触发了 Linux 的 OOM Killer。解决优化代码的内存占用例如分批加载数据、使用with torch.no_grad()推理减少中间变量缓存、降低 batch size。也可以在运行前先确认服务器内存情况free -h如果内存长期处于 90% 以上建议升级套餐或使用 Swap 分区做临时扩展sudo fallocate -l 2G /swapfile sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile这能缓解内存不够的问题但不是长久之计。6. 进阶技巧后台运行与快速复现同一套环境部署完代码后常见的运行方式是直接python3.7 你的文件.py但这种方式在断开 SSH 连接后进程就会终止。更可靠的做法是使用nohup或screen让代码在服务器后台持续运行nohup python3.7 你的文件.py output.log 21 参数说明nohup让进程忽略 SIGHUP 信号即使关闭终端也不会被杀 output.log将标准输出重定向到 output.log 文件21会把标准错误输出也合并到同一文件中让命令在后台运行。之后通过tail -f output.log查看实时输出。如果代码运行时间很长我更推荐用screenscreen -S train python3.7 train.py按CtrlA然后按D可以脱离会话代码继续在服务器后台运行下次重新连接后用screen -r train回到之前的会话这样可以随时恢复查看运行状态比 nohup 更好用。如果频繁在本地和服务器之间切换环境可以用 conda 导出环境配置在服务器端一键恢复conda env export environment.yaml上传到服务器后conda env create -f environment.yaml如果没有 Miniconda只靠 pip 也能达到类似效果。关键是每次做环境调整后都重新生成 requirements.txt否则时间一长本地和服务器环境的版本差异会变成一个黑匣子你根本不记得当初跑通时到底用的是哪个版本的 numpy、opencv 还是 torchvision。从那以后我每次部署 Python 项目到服务器都会强制走一遍这个流程申请/充值资源、确认系统版本、下载对应 Python 解释器、锁定 pip 版本、上传代码、安装依赖、后台跑通、nohup 或 screen 保活。这套思路在腾讯云、其他云厂商、甚至本地虚拟机里都能复用核心原则就是先锁定 Python 版本再锁定依赖最后再管运行方式。希望这篇笔记能帮你从“部署跑不起来”的困境里走出来把时间真正花在代码本身。本文还有配套的精品资源点击获取