如何将Python项目部署到新电脑上运行?
如何将Python项目部署到新电脑上运行?
在工作中,可能需要在新服务器上部署项目代码,例如新增服务器、把测试环境的代码部署到生产环境等。
在生活中,也会遇到换新电脑,需要将自己在旧电脑上写的(项目)代码拷贝到新电脑上运行。
本文将这个过程中的关键步骤记录下来,方便有相同情况的同学使用,提高效率。也适用于Python初学者,刚开始学习很可能会面临这类问题。
一、安装Python和PyCharm
如果是公司的新服务器,大部分公司有统一的安装脚本,通常也会指定Python的版本,按照公司的标准安装即可。当然,有些服务器已经统一安装好了,不需要我们安装。服务器一般也不用安装PyCharm。
如果是个人新电脑,Python最好安装最新的稳定版,Python3都是兼容的,安装新的版本肯定是有好处的(如运行速度等),可能会遇到个别库的兼容问题,具体问题遇到时再解决就行了。
Python安装保姆级教程:Python3安装(Win
个人电脑安装PyCharm可以选择社区版和专业版,社区版可以永久免费使用,如果只使用Pycharm最基本的编辑和运行等功能,社区版完全可以满足要求。当然最好还是安装专业版,专业版需要激活,可以购买激活码,也有其他方法激活,包括永久激活,大家可以自行在网络上查找激活方法。这里多说一句,永久不一定要追求多长的年数,基本能用几年就行了,因为几年后你应该会升级新版本的Pycharm(可能激活就失效了),或者你可能会换电脑,你的电脑基本也不会用二三十年。
PyCharm安装保姆级教程:PyCharm安装(Win)
二、批量安装第三方库
Python能冲上编程语言榜第一,其中一个原因就是Python有海量功能强大的第三方库。
所以,把一个项目部署到新电脑上,要先把调用的第三方库安装好,代码才能正常运行。比较方便的是,可以用批量安装的方法。
Step1. 先将旧电脑上安装的第三方库导出到requirements.txt文件中。
# 在旧电脑上执行此命令导出
pip freeze > requirements.txt
Step2. 将requirements.txt文件拷贝到新电脑上,pip安装时用 -r 参数指定循环安装requirements.txt文件中的库。同时可以用 -i 参数指定镜像源。
# 在新电脑上执行此命令批量安装
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
批量安装真的非常方便,比如我自己的Python中安装了200来个第三方库,一个个地安装会非常费时费力。在服务器或生产环境部署项目时,最好把requirements.txt文件作为配置文件的一部分一起维护,这样可以更好地管理和部署项目代码。
当然,如果只有个别库,可以单个安装,如安装pandas:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pandas
安装好Python、PyCharm以及第三方库后,项目就可以在新电脑上运行了。
三、可能会遇到的问题记录
Problem1. 批量安装库可能会失败
批量安装的库非常多时,这些需要用到的第三方库一般是很长时间积累下来的,所以可能会遇到个别库安装失败,原因可能是版本问题、依赖问题等。
可以采用的方法是先解决这个库安装的问题,再重新执行批量安装命令。不过,我建议先把失败的库从requirements.txt文件中删除(记录到其他地方),跳过有问题的这个库的安装,先把其他库安装完成后,再解决有问题的这个库的安装问题。
Problem2. 在PyCharm中运行代码,导入安装成功的包,提示包不存在。
在PyCharm中运行其他电脑拷贝过来的项目代码,第三方库已经确认安装成功了,仍然可能报错模块不存在,例如:
ModuleNotFoundError: No module named 'pandas'
根本原因是没有在PyCharm中配置好Python解释器或Python运行环境加载出错。可以按照如下步骤解决:
Step1. 点击Pycharm左上角的 File > Settings,然后将Python解释器修改成当前电脑安装的Python可执行文件路径。

Step2. 在点击 Add Interpreter 后会弹出新窗口,添加解释器时记得把 Inherit global site-packages 勾选上,然后点击“OK”按钮返回就行了。
此时可能会遇到 Environment location directory is not empty 问题,导致添加不了解释器,需要按照下一步的方式先处理。

Step3. 遇到 Environment location directory is not empty 时,选择好解释器,“OK”按钮还是灰色的,点击不了,没办法设置。
这是因为当前打开的项目文件夹中已经存在 venv 文件夹,该文件夹的存在导致了Pycharm无法创建新的环境。
解决方法为手动删除项目下的 venv 文件夹,然后重启Pycharm,再重新设置Python解释器(重复上面1,2步)。重新设置Python解释器后,会自动创建新的 venv 文件夹。

如果在新电脑上创建新项目,也记得勾选上 Inherit global site-packages 。

问题解决后,再执行代码,就可以正常导包和运行了,项目部署成功。
其他问题以后有机会我可以继续更新,如果你有类似的问题需要帮助,可以私信我。
相关阅读:
功能强大,但因安全隐患被企业禁用的Python内置函数
📢欢迎 点赞👍 收藏⭐ 评论📝 关注❤ 如有错误敬请指正!
☟ 学Python,点击下方名片关注我。☟
相关文章:
如何将Python项目部署到新电脑上运行?
如何将Python项目部署到新电脑上运行? 在工作中,可能需要在新服务器上部署项目代码,例如新增服务器、把测试环境的代码部署到生产环境等。 在生活中,也会遇到换新电脑,需要将自己在旧电脑上写的(项目&…...
JVM和JAVA体系结构
1、为什么要学习JVM作为Java工程师的你曾被伤害过吗?你是否也遇到过这些问题?运行着的线上系统突然卡死,系统无法访问,甚至直接OOM想解决线上JVM GC问题,但却无从下手新项目上线,对各种JVM参数设置一脸茫然…...
(十)、通过云对象修改阅读量+点赞功能的实现【uniapp+uinicloud多用户社区博客实战项目(完整开发文档-从零到完整项目)】
1,通过云对象importObj修改阅读量 1.1 新建云对象 1.2 云对象中写自增自减方法 封装云对象utilsObj中的自增自减方法,方法名取为operation,传递4个参数。 // 云对象教程: https://uniapp.dcloud.net.cn/uniCloud/cloud-obj // jsdoc语法提…...
刷力扣的第一天脑子要长出来的感觉(怎么有人大四才开始啊啊啊啊啊啊啊啊啊啊啊啊,又是等成绩的一天,)
刷力扣的第一天脑子要长出来的感觉(为什么大四才开始啊啊啊啊啊啊啊啊啊啊啊啊) emmm,自己还是想不太出来(只是一点想法),可能还是会参考评论区,求各位轻喷 分析:带符号一定不是回…...
Nuclei文*件上*传FUZZ POC
目录 1.前言 2. Nuclei文件上传FUZZ POC 3. 实战中的应用 1.前言 该文件上传FUZZ POC主要来源于一个靶*场,该POC 主要用来FUZZ目标js页面中的upload ajax请求,以此来进一步尝试文件上传漏*洞利*用。 这里也要感谢下“打工仔1号”提供的开*发人员常见的文*件上*传javaScr…...
完美解决方案-雪花算法ID到前端之后精度丢失问题
最近公司的一个项目组要把以前的单体应用进行为服务拆分,表的ID主键使用Mybatis plus默认 的雪花算法来生成。 快下班的时候,小伙伴跑过来找我,:“快给我看看这问题,卡这卡了小半天了!”。连拉带拽&#x…...
工程管理系统源码之高效的工程项目管理软件
高效的工程项目管理软件不仅能够提高效率还应可以帮你节省成本提升利润 在工程行业中,管理不畅以及不良的项目执行,往往会导致项目延期、成本上升、回款拖后,最终导致项目整体盈利下降。企企管理云业财一体化的项目管理系统,确保…...
390. 消除游戏
列表 arr 由在范围 [1, n] 中的所有整数组成,并按严格递增排序。请你对 arr 应用下述算法:从左到右,删除第一个数字,然后每隔一个数字删除一个,直到到达列表末尾。重复上面的步骤,但这次是从右到左。也就是…...
springBoot JPA代码生成器
介绍通过IDEA配置文件,根据数据库表结构快速生产Service、ServiceImpl、repository、repositoryImpl、自动生成常用的jpa增删改查等方法。使用的版本Spring Boot2.1.6.RELEASE spring-boot-starter-data-jpa使用idea 生成代码步骤打开idea(https://images.gitee.co…...
相同月利率条件下不同还款方式贷款的APR与IRR研究
文章目录前提假设一次性还本付息先息后本等额本息等额本金简单二分法求解IRR的程序汇总实验对比前提假设 因为常见的信贷产品还款期数定义都是按照月,假设只借一期的利率(月利率)为r,在此条件下,研究不同还款方式下的…...
【论文】智能隧道检测车的现状及改进策略
本文转载自《智慧城轨》2022年第11期 作者:黄丹樱1,韦强1,朱椰毅2,范骁1,林浩立1 单位:1 浙江师范大学工学院;2 浙江金温铁道开发有限公司 声明:本文仅用于学术分享,不做商业用途,如有侵权,联…...
【代码随想录二刷】Day16-二叉树-C++
代码随想录二刷Day16 每日任务 104.二叉树的最大深度 559.n叉树的最大深度 111.二叉树的最小深度 222.完全二叉树的节点个数 语言:C 104. 二叉树的最大深度 链接:https://leetcode.cn/problems/maximum-depth-of-binary-tree/ 递归法(前序…...
Lecture5 实现线性回归(Linear Regression with PyTorch)
目录 1 Pytorch实现线性回归 1.1 实现思路 1.2 完整代码 2 各部分代码逐行详解 2.1 准备数据集 2.2 设计模型 2.2.1 代码 2.2.2 代码逐行详解 2.2.3 疑难点解答 2.3 构建损失函数和优化器 2.4 训练周期 2.5 测试结果 3 线性回归中常用优化器 1 Pytorch实现线性回归…...
Python与Matlab svd分解的差异
1.差异说明 Matlab和Python的NumPy库中的SVD函数(np.linalg.svd)都是用来对矩阵进行奇异值分解(SVD)的函数,但它们在默认参数和返回结果方面有一些差异。 在Matlab中,SVD函数的默认行为是计算矩阵的完整SVD,即对于一…...
2023年光模块行业发展趋势及未来前景
随着数字化时代的到来,互联网行业的快速发展,网络通信设备行业的发展也在逐渐加速。光模块作为网络设备的重要组成部分,也在不断创新和发展。那么,光模块行业的未来发展趋势又是怎样的呢?接下来就跟着易天光通信&#…...
Sysmac Studio使用Tortoise和Git实现版本控制
Sysmac Studio使用Tortoise和Git实现版本控制实验时间:2022/11/16 实验软件:Sysmac Studio(1.52,需要软件授权支持版本控制)、Git(2.38.1)、Tortoise(2.13.0)、gitee(代码仓库) 实验目的:Sysmac Studio实现版本控制、多人同时开…...
Intent 和 Bundle 传值的区别
文章目录1、使用上1.1 Intent 方式1.2 Bundle 方式2、为什么 Bundle 使用 ArrayMap 而不是 Hashmap 实现呢?1、使用上 1.1 Intent 方式 举例:将数据从页面 A 传递到 B,然后再传递到 CA 页面: Intent intentnew Intent(MainActi…...
TypeScript 初步
一、TypeScript是什么? Typed JavaScript at Any Scale: 添加了类型系统的JavaScript,使用于任何规模的项目。 两个重要特点: 类型系统 任何规模 中文官网:文档简介 TypeScript中文网 TypeScript——JavaScript的超集 TypeS…...
leaflet 添加zoomslider,控制zoom放大缩小(074)
第074个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+leaflet中使用zoomslider,相比于普通的zoom控件,这个更加形象,更加具体些。 直接复制下面的 vue+leaflet源代码,操作2分钟即可运行实现效果 文章目录 示例效果配置方式示例源代码(共65行)相关API参考:专栏目…...
10分钟学会python对接【OpenAI API篇】
今天学习 OpenAI API,你将能够访问 OpenAI 的强大模型,例如用于自然语言的 GPT-3、用于将自然语言翻译为代码的 Codex 以及用于创建和编辑原始图像的 DALL-E。 首先获取生成 API 密钥 在我们开始使用 OpenAI API 之前,我们需要登录我们的 Op…...
2024年赣州旅游投资集团社会招聘笔试真
2024年赣州旅游投资集团社会招聘笔试真 题 ( 满 分 1 0 0 分 时 间 1 2 0 分 钟 ) 一、单选题(每题只有一个正确答案,答错、不答或多答均不得分) 1.纪要的特点不包括()。 A.概括重点 B.指导传达 C. 客观纪实 D.有言必录 【答案】: D 2.1864年,()预言了电磁波的存在,并指出…...
【大模型RAG】Docker 一键部署 Milvus 完整攻略
本文概要 Milvus 2.5 Stand-alone 版可通过 Docker 在几分钟内完成安装;只需暴露 19530(gRPC)与 9091(HTTP/WebUI)两个端口,即可让本地电脑通过 PyMilvus 或浏览器访问远程 Linux 服务器上的 Milvus。下面…...
ffmpeg(四):滤镜命令
FFmpeg 的滤镜命令是用于音视频处理中的强大工具,可以完成剪裁、缩放、加水印、调色、合成、旋转、模糊、叠加字幕等复杂的操作。其核心语法格式一般如下: ffmpeg -i input.mp4 -vf "滤镜参数" output.mp4或者带音频滤镜: ffmpeg…...
以光量子为例,详解量子获取方式
光量子技术获取量子比特可在室温下进行。该方式有望通过与名为硅光子学(silicon photonics)的光波导(optical waveguide)芯片制造技术和光纤等光通信技术相结合来实现量子计算机。量子力学中,光既是波又是粒子。光子本…...
Python基于历史模拟方法实现投资组合风险管理的VaR与ES模型项目实战
说明:这是一个机器学习实战项目(附带数据代码文档),如需数据代码文档可以直接到文章最后关注获取。 1.项目背景 在金融市场日益复杂和波动加剧的背景下,风险管理成为金融机构和个人投资者关注的核心议题之一。VaR&…...
打手机检测算法AI智能分析网关V4守护公共/工业/医疗等多场景安全应用
一、方案背景 在现代生产与生活场景中,如工厂高危作业区、医院手术室、公共场景等,人员违规打手机的行为潜藏着巨大风险。传统依靠人工巡查的监管方式,存在效率低、覆盖面不足、判断主观性强等问题,难以满足对人员打手机行为精…...
【Linux】自动化构建-Make/Makefile
前言 上文我们讲到了Linux中的编译器gcc/g 【Linux】编译器gcc/g及其库的详细介绍-CSDN博客 本来我们将一个对于编译来说很重要的工具:make/makfile 1.背景 在一个工程中源文件不计其数,其按类型、功能、模块分别放在若干个目录中,mak…...
js 设置3秒后执行
如何在JavaScript中延迟3秒执行操作 在JavaScript中,要设置一个操作在指定延迟后(例如3秒)执行,可以使用 setTimeout 函数。setTimeout 是JavaScript的核心计时器方法,它接受两个参数: 要执行的函数&…...
【Qt】控件 QWidget
控件 QWidget 一. 控件概述二. QWidget 的核心属性可用状态:enabled几何:geometrywindows frame 窗口框架的影响 窗口标题:windowTitle窗口图标:windowIconqrc 机制 窗口不透明度:windowOpacity光标:cursor…...
ubuuntu24.04 编译安装 PostgreSQL15.6+postgis 3.4.2 + pgrouting 3.6.0 +lz4
文章目录 下载基础包下载源码包编译 PG编译 postgis编译安装 pgrouting下载源码包配置编译参数编译安装 初始化数据库建表并检查列是否使用了 lz4 压缩算法检查 postgis 与 pgrouting 是否可以成功创建 下载基础包 sudo apt update && sudo apt upgrade -y sudo apt i…...
