如何将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…...
2023美赛必须注意事项
文章目录首页部分要求竞赛期间题目查看题目下载论文要求比赛提示控制号提交解决方案更多注意事项首页部分要求 具体如下: 我提取一些关键词如下: 第一页:摘要页字体要求:12点的 Times New Roman 字体请勿在此页面或任何页面上…...
基于微信小程序的智能招聘小程序
文末联系获取源码 开发语言:Java 框架:ssm JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7/8.0 数据库工具:Navicat11 开发软件:eclipse/myeclipse/idea Maven包:Maven3.3.9 浏览器…...
Java文件操作和I/O
Java 流(Stream)、文件(File)和IOJava.io 包几乎包含了所有操作输入、输出需要的类。所有这些流类代表了输入源和输出目标。Java.io 包中的流支持很多种格式,比如:基本类型、对象、本地化字符集等等。一个流可以理解为一个数据的序列。输入流表示从一个源…...
QT项目_RPC(进程间通讯)
QT项目_RPC(进程间通讯) 前言: 两个进程间通信、或是说两个应用程序之间通讯。实际情况是在QT开发的一个项目中,里面包含两个子程序,子程序有单独的界面和应用逻辑,这两个子程序跑起来之后需要一些数据的交互,例如&…...
移动硬盘文件丢失怎么恢复?
在我们的日常工作、学习和生活都离不开各种数据。每天都会接收或处理各种数据,尤其是做设计、自媒体、多媒体设计的人。移动硬盘成为我们常备的存储工具,但有使用就会伴随着意外情况的发生,这将导致移动硬盘上数据的丢失,比如误删…...
什么是同步整流和异步整流
在设计降压型DCDC电路的时候,经常会听到同步整流(synchronous)和异步整流(asynchronous)。那么什么是同步整流,什么是异步整流呢从这两种电路的拓扑来看,异步整流型外围有一个续流二极管&#x…...
关于PYTHON Enclosing 的一个小问题
问题分析 以下是一段每隔半小时重复执行测试用例的脚本,func是传入的测试函数,在执行func前后,会打印操作次数 def repeat(func, action):try:log.info(u******开始并发%s****** % action)thread_list []for i in range(repeat_count):def…...
LabVIEW错误-2147220623:最大内存块属性不存在
LabVIEW错误-2147220623:最大内存块属性不存在在使用NI Linux实时操作系统目标中,使用系统属性节点和分布式系统管理器(DSM),但遇到一些问题:它未正确报告系统上的可用物理内存量。在NI Linux实时系统上出现…...
图的总复习
一、图的定义Graph 图是由顶点vertex集合及顶点间关系集合组成的一种数据结构: 顶点的集合 和 边的集合 二、无向图 用(x,y)表示两个顶点x和y之间的一条边(edge) 边是无方向的 N{V,E},V{0…...
测试流程记录
1,需求评审 2,技术方案评审 3,编写测试用例 编写需求分析 编写测试用例 编写冒烟case 4,用例评审 5,提测 提测前给开发执行冒烟case 6,测试 测试完成前约产品验收时间 7,验收 跟进验收问题…...
做网站图片素材在线编辑/网络推广网站排名
操作系统实 验 报 告课程名称操作系统实验实验项目名称磁盘调度算法学号班级姓名专业计算机科学与技术学生所在学院计算机科学与技术学院指导教师初妍实验室名称地点21#428哈尔滨工程大学计算机科学与技术学院第六讲 磁盘调度算法一、实验概述1. 实验名称磁盘调度算法2. 实验目…...
河北住房和城乡建设厅官方网站/关键词点击价格查询
作者:Baijayanta Roy来源:towardsdatascience编译&内容补充:早起Python在用python进行机器学习或者日常的数据处理中,pandas是最常用的Python库之一,熟练掌握pandas是每一个数据科学家的必备技能,本文将…...
seo的中文含义/香港seo公司
进入Dos界面后,输入fdisk /mbr 不会损坏数据.转载于:https://www.cnblogs.com/wjonjon/archive/2009/09/15/1566735.html...
珠海做网站优化的公司/万网阿里云域名查询
怪自己大学C语言学的不扎实,下面的程序看了好久才破解,大神见谅,写下总结吧 程序先贴出来: 定义如下:子程序如下:实际调用如下刚开始看的时候,死活没搞懂,后来通过验证什么的弄懂了&…...
一般做外单的有哪些网站/315影视行业
1. 卷积神经网络结构 卷积神经网络是一个多层的神经网络,每层都是一个变换(映射),常用卷积convention变换和pooling池化变换,每种变换都是对输入数据的一种处理,是输入特征的另一种特征表达;每层…...
怎么做阿里巴巴官网站/免费网站推广网站在线
or在这里是这样理解的,因为在PHP中并不区分数据类型,所以$file既可以是int也可以bool,所以这样的语句不会报错。但其处理过程可能有些朋友不大明白。其实在大多数的语言中, bool orbool这样的语句中,如果前一个值为真后…...