python 项目怎么在别的电脑上运行已经开发好的代码呢 不带venv

完整一步步操作(Windows CMD)

第一步:进入项目目录,激活虚拟环境

打开 cmd,cd 到你的 ai-asr 文件夹

cmd

cd /d D:\java\python\ai-asr call .venv\Scripts\activate

激活成功后,命令行前面会出现(.venv)标识。

第二步:导出依赖清单

cmd

pip freeze > requirements.txt

执行完成,ai-asr 文件夹下会生成requirements.txt文件。里面记录当前 venv 所有安装包 + 精确版本(nltk、funasr、torch、flask…… 全部在内)。

第三步:目标服务器使用这份清单

服务器不要拷贝 .venv

  1. 上传代码 + requirements.txt,删除旧的.venv
  2. 在服务器打开 cmd,进入项目目录,新建虚拟环境

cmd

D:\java\python\python310\python.exe -m venv .venv call .venv\Scripts\activate pip install -r requirements.txt

等待全部包自动安装完成。

补充重要知识点

  1. 离线安装方案(服务器无法联网必备)本机激活 venv 后下载所有 whl 离线包:

cmd

pip download -d packages -r requirements.txt

会生成packages文件夹,把这个文件夹一起传到服务器,离线安装:

cmd

pip install --no-index --find-links=packages -r requirements.txt
  1. 避坑提醒不要在没有激活 venv 的时候执行pip freeze,导出的是外层 python 的包清单,不是项目需要的!

附赠优化后的启动脚本(直接调用 venv 内 python,绕过容易失效的 activate)

bat

@echo off chcp 65001 cd /d "%~dp0" .venv\Scripts\python.exe ai-asr-service.py pause

好处:不再依赖 call activate,不会出现激活静默失败,只要 venv 内部文件完整就能运行。⚠️依然提醒:跨机器新建 venv,不要直接复制 venv 文件夹

如果你需要,我顺带给你一份一键新建环境 + 自动安装依赖的部署 bat。

D:\java\python\python310\python.exe -m venv .venv 这个python是不是想放在那个目录都行

核心答案

是的,这条命令里的D:\java\python\python310\python.exe是【母本 Python 解释器】,这个解释器本身放在任意目录都可以,只要路径正确、能正常运行。


拆解这条命令含义

plaintext

D:\java\python\python310\python.exe -m venv .venv
  1. 前面一长串:用来创建虚拟环境的母体 Python 程序(你的绿色便携 Python3.10);你可以把python310文件夹挪到D:\soft\python310,命令改成:

    plaintext

    D:\soft\python310\python.exe -m venv .venv

    依旧能正常创建.venv

  2. 末尾.venv:代表虚拟环境文件夹创建在【当前 cmd 工作目录】

举例子:cmd 当前路径在D:\java\python\ai-asr执行命令 → 在ai-asr\.venv生成虚拟环境。

如果你想自定义虚拟环境存放位置,可以写绝对路径:

plaintext

D:\java\python\python310\python.exe -m venv D:\env\ai-asr-env

⚠️两个关键限制(非常重要,踩坑关键点)

  1. 创建出来的.venv,不能随便移动文件夹,更不能跨电脑复制创建时,.venv/pyvenv.cfg硬编码记录【母体 Python 的绝对路径】。

    • 本机:母体 Python 不动,仅仅挪动项目文件夹,偶尔可以运行;
    • 跨电脑:直接复制.venv极高概率异常(就是你之前遇到的问题)。
  2. 母体 Python 文件夹(python310)挪动之后,旧的.venv 会失效!假设你原先:母体路径D:\java\python\python310,生成了.venv之后你把python310移动到D:\soft\python310原来创建的.venv无法继续使用,找不到母解释器,只能删掉重建。


结合你的部署流程最佳实践

  1. python310绿色包固定一个路径,不要再随意挪动;
  2. 服务器上不要拷贝本地的.venv,解压代码后现场执行这条命令新建环境;
  3. 启动脚本直接调用.venv\Scripts\python.exe,放弃容易失效的call activate

bat

@echo off chcp 65001 cd /d "%~dp0" .venv\Scripts\python.exe ai-asr-service.py pause

补充小技巧

如果你不想写很长的绝对路径,cmd 先切换到 python310 目录执行也行:

cmd

cd /d D:\java\python\python310 python.exe -m venv D:\java\python\ai-asr\.venv

效果完全一致。

上传代码 + requirements.txt,删除旧的.venv 在服务器打开 cmd,进入项目目录,新建虚拟环境 进入那个目录

服务器完整分步操作(复制直接执行)

1、先进入你的项目目录(根据你服务器实际路径修改)

cmd

cd /d D:\java\python\ai-asr

2、删除旧的、拷贝过来失效的 .venv(必须执行)

cmd

rmdir /s /q .venv

3、使用绿色 Python310,新建干净虚拟环境

cmd

D:\java\python\python310\python.exe -m venv .venv

执行完毕,当前目录生成全新.venv

4、激活虚拟环境

cmd

call .venv\Scripts\activate

✅激活成功:命令行开头出现(.venv)

5、读取 requirements.txt 自动安装所有依赖

cmd

pip install -r requirements.txt

等待全部库安装完成(nltk、funasr、torch 等)

6、测试启动(两种方式任选)

方式①:手动 cmd 测试

cmd

python ai-asr-service.py

方式②:使用优化后的start.bat不依赖 activate,推荐长期使用

bat

@echo off chcp 65001 cd /d "%~dp0" .venv\Scripts\python.exe ai-asr-service.py pause

⚠️重点避坑清单

  1. 绝对不要把本地电脑生成的.venv 打包上传服务器,必须服务器现场新建;
  2. 确保服务器上D:\java\python\python310\python.exe真实存在,路径不能错;
  3. 如果服务器无法联网:提前在本机下载 whl 离线包,上传后离线安装;
  4. 以后更新代码:只上传 py、models、requirements.txt,永远不上传.venv 文件夹

额外:一键部署脚本(deploy.bat,放到项目根目录,双击自动执行整套流程)

bat

@echo off chcp 65001 cd /d "%~dp0" echo 正在清理旧虚拟环境... rmdir /s /q .venv echo 创建全新虚拟环境 D:\java\python\python310\python.exe -m venv .venv echo 激活环境并安装依赖 call .venv\Scripts\activate pip install -r requirements.txt echo 环境部署完成! pause

注意:服务器能联网才能直接运行这个一键脚本。