当前位置: 首页 > news >正文

如何将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…...

【网络】每天掌握一个Linux命令 - iftop

在Linux系统中,iftop是网络管理的得力助手,能实时监控网络流量、连接情况等,帮助排查网络异常。接下来从多方面详细介绍它。 目录 【网络】每天掌握一个Linux命令 - iftop工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景…...

Linux云原生安全:零信任架构与机密计算

Linux云原生安全:零信任架构与机密计算 构建坚不可摧的云原生防御体系 引言:云原生安全的范式革命 随着云原生技术的普及,安全边界正在从传统的网络边界向工作负载内部转移。Gartner预测,到2025年,零信任架构将成为超…...

反射获取方法和属性

Java反射获取方法 在Java中,反射(Reflection)是一种强大的机制,允许程序在运行时访问和操作类的内部属性和方法。通过反射,可以动态地创建对象、调用方法、改变属性值,这在很多Java框架中如Spring和Hiberna…...

unix/linux,sudo,其发展历程详细时间线、由来、历史背景

sudo 的诞生和演化,本身就是一部 Unix/Linux 系统管理哲学变迁的微缩史。来,让我们拨开时间的迷雾,一同探寻 sudo 那波澜壮阔(也颇为实用主义)的发展历程。 历史背景:su的时代与困境 ( 20 世纪 70 年代 - 80 年代初) 在 sudo 出现之前,Unix 系统管理员和需要特权操作的…...

C++八股 —— 单例模式

文章目录 1. 基本概念2. 设计要点3. 实现方式4. 详解懒汉模式 1. 基本概念 线程安全(Thread Safety) 线程安全是指在多线程环境下,某个函数、类或代码片段能够被多个线程同时调用时,仍能保证数据的一致性和逻辑的正确性&#xf…...

AI书签管理工具开发全记录(十九):嵌入资源处理

1.前言 📝 在上一篇文章中,我们完成了书签的导入导出功能。本篇文章我们研究如何处理嵌入资源,方便后续将资源打包到一个可执行文件中。 2.embed介绍 🎯 Go 1.16 引入了革命性的 embed 包,彻底改变了静态资源管理的…...

【Java学习笔记】BigInteger 和 BigDecimal 类

BigInteger 和 BigDecimal 类 二者共有的常见方法 方法功能add加subtract减multiply乘divide除 注意点:传参类型必须是类对象 一、BigInteger 1. 作用:适合保存比较大的整型数 2. 使用说明 创建BigInteger对象 传入字符串 3. 代码示例 import j…...

Go 语言并发编程基础:无缓冲与有缓冲通道

在上一章节中,我们了解了 Channel 的基本用法。本章将重点分析 Go 中通道的两种类型 —— 无缓冲通道与有缓冲通道,它们在并发编程中各具特点和应用场景。 一、通道的基本分类 类型定义形式特点无缓冲通道make(chan T)发送和接收都必须准备好&#xff0…...

面向无人机海岸带生态系统监测的语义分割基准数据集

描述:海岸带生态系统的监测是维护生态平衡和可持续发展的重要任务。语义分割技术在遥感影像中的应用为海岸带生态系统的精准监测提供了有效手段。然而,目前该领域仍面临一个挑战,即缺乏公开的专门面向海岸带生态系统的语义分割基准数据集。受…...

Golang——9、反射和文件操作

反射和文件操作 1、反射1.1、reflect.TypeOf()获取任意值的类型对象1.2、reflect.ValueOf()1.3、结构体反射 2、文件操作2.1、os.Open()打开文件2.2、方式一:使用Read()读取文件2.3、方式二:bufio读取文件2.4、方式三:os.ReadFile读取2.5、写…...