如何将Python项目部署到新电脑上运行?

news2024/11/17 7:32:29

如何将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,点击下方名片关注我。☟

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/350217.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux内存分区(swap)

目录 1、使用物理分区创建内存交换分区 2、使用文件创建内存交换文件 当硬件的设备资源充足的话,那么swap是不会被我们的系统所使用到的,所以swap会被利用到的时刻通常就是物理内存不足的情况 我们知道CPU所读取的数据都来自于内存,那么当…

硬件系统工程师宝典(7)-----信号完整性分析中的时序设计

各位同学大家好,欢迎继续做客电子工程学习圈,今天我们继续来讲这本书,硬件系统工程师宝典。 上篇我们说到信号的串扰以及减小串扰的方法。今天我们来看看信号的时序设计需要考虑什么? 信号的时序设计 信号的时序要求就是数据信…

【JavaGuide面试总结】Redis篇·上

【JavaGuide面试总结】Redis篇上1.Redis 除了做缓存,还能做什么?2.Redis 可以做消息队列么?3.如何基于 Redis 实现分布式锁?4.Redis 常用的数据结构有哪些?5.String 的应用场景有哪些?6.String 还是 Hash 存…

【AI/NLP】InstructGPT数据标注问题

文章目录1 背景介绍2 标记员筛选2.1 标记员筛选标准3 数据集及其标注3.1 预训练3.2 微调3.2.1 SFT-demonstration data3.2.2 RM-comparison data3.3 数据集大小4 模型实现1 背景介绍 ChatGPT的训练过程与InstructGPT相近,大致分为三步: SFT&#xff1a…

基金详细介绍

投资回报率 利润 / 投资总额(第一次投资回报率 5%) 关注南方理财 60 天债券 B(202306)万元收益 50—60 元 购基七步曲: 风险测试基本知识交易指南查看业绩了解评级在线下单赎回 基金类型: 积极成长型基金…

svg转png

svg转png写了一个spring boot项目,支持传入svg文件转出png图片,并且自定义转出png的宽和高。主要代码如下:所需依赖如下:演示如下:首先,运行项目使用接口调用工具调用接口发送请求,提取文件1000…

日本机载激光雷达测深进展(一)日本启动测量90%沿岸水深项目

海洋地图项目利用航空测深绘制日本90%沿海20m以浅区域,是日本海道协会(JHA)和日本财团的一个联合项目。 迄今为止,只有不到2%的日本沿海水域得到了测绘,严重拖累了在海洋事故、防灾减灾、篮碳以及生物多样性保护等领域…

数据结构——第二章 线性表(1)——顺序结构

线性表1. 线性表1.1 线性表的定义1.1.1 访问型操作1.1.2 加工型操作1.2 线性表的顺序存储结构1.2.1 定义顺序表数据类型方法11.2.2 定义顺序表数据类型方法21.3 顺序表的基本操作实现1.3.1 顺序表的初始化操作1.3.2 顺序表的插入操作1.3.3 顺序表的删除操作1.3.4 顺序表的更新操…

Windows环境下使用Pycharm运行sh文件

博主在调试一些程序时,时常遇到 .sh文件,这是Linux中的shell脚本文件,那么这种文件在windows下如何运行呢,其实我们可以通过git来实现,接下来看我操作。 首先我们需要安装Git,关于其安装过程可以参考博主这…

wholeaked:一款能够追责数据泄露的文件共享工具

关于wholeaked wholeaked是一款功能强大的文件共享工具,该工具基于go语言开发,可以帮助广大系统管理员和安全研究人员在组织发生数据泄露的时候,迅速找出数据泄露的“始作俑者”。 wholeaked可以获取被共享的文件信息以及接收人列表&#x…

【云计算自学路线】

云计算包含的技术内容和涉及的方向比较多,一定要进行系统化的学习才能更好的掌握这门技术。 云计算作为互联网新技术领域,现阶段也是出于高速发展期,想学习加入云计算行业的小伙伴可以抓紧机会了,跟着小课一起来了解云计算以及它…

【PTA Advanced】1146 Topological Order(C++)

目录 题目 Input Specification: Output Specification: Sample Input: Sample Output: 思路 C 知识UP 代码 题目 This is a problem given in the Graduate Entrance Exam in 2018: Which of the following is NOT a topological order obtained from the given dire…

佳能镜头EOS系统EF协议逆向工程(四)常用指令

目录 EOS5000(基础协议) AE*记忆键 物镜38-76焦距76mm的帧值(手动焦距) 帧操作和解码命令 指令0x0A:请求物镜可用 指令0xA0、B0、B2、90和F0:光学特性和AF状态 指令0x80-0A:请求物镜的物理特性 指令0xC2&#…

(考研湖科大教书匠计算机网络)第四章网络层-第四节:IP数据报的发送和转发过程

获取pdf:密码7281专栏目录首页:【专栏必读】考研湖科大教书匠计算机网络笔记导航 文章目录一:概述二:举例三:路由器可以隔离广播域本节对应视频如下 【计算机网络微课堂(有字幕无背景音乐版)】&…

文华财经期货策略高胜率顶底反转指标公式,短线操盘量化CTA主图K线指标

​期货指标公式不是交易的圣杯,也不是期货亏损后的救命稻草。请理性运用指标公式,独立决策,盈亏自负。 什么是多头趋势行情? 多头趋势行情指的是市场单边多头行情。具体表现为上涨过程中出现连续上涨的高点与低点,只要…

3.4 ISIS和OSPF之间路由引入

实验目的掌握在IS-IS中引入OSPF路由的方法掌握在OSPF中引入IS-IS路由的方法实验拓扑ISIS和OSPF之间路由引入实验拓扑如图3-3所示: 图3-3:ISIS和OSPF之间路由引入 实验步骤IP地址的配置R1的配置 <Huawei>system-view [Huawei]undo info-center enable

Spring 框架源码(六) Bean的生命周期全流程源码解析

Spring框架作为Java王国的地基&#xff0c;我觉得它包含了很多精妙的设计&#xff0c;例如Bean工厂设计、Bean的生命周期、tx、aop、web、mvc等&#xff0c;最核心基本的Bean设计是Spring 的框架的灵魂&#xff0c;本文就Bean的生命周期全流程做源码程度上的解析&#xff0c;欢…

【surfaceflinger源码分析】surfaceflinger进程的消息驱动模型(二)

接着上篇文章中的两个新疑问: mEventTube是个什么玩意&#xff1f;MessageQueue::setEventConnection(…) 什么时候有谁调用的 &#xff1f; BitTube mEventTube的类型为class BitTube&#xff0c;BitTube从字面上的意思来看bit管道&#xff0c;bit隧道&#xff0c;应该是一…

20230216在Ubuntu18.04下查看硬盘信息

20230216在Ubuntu18.04下查看硬盘信息 2023/2/16 22:25 百度搜索&#xff1a;查看 HDD 缓存 ubuntu [BEGIN] 2023/2/16 22:10:24 rootrootrootroot-X99-Turbo:~$ rootrootrootroot-X99-Turbo:~$ rootrootrootroot-X99-Turbo:~$ cat /sys/block/sda/device/modelHUS726060ALE61…

VIVADO2022 sdk 工程创建流程

正点原子uart历程复现 create block design&#xff08;起名 为System&#xff09; -> open block design -> 号/IP catalog 中搜索zynq 双击打开&#xff0c; 将和pl相关的时钟都干掉 再auto 布线一下 把herarchy中的sources 中的system.bd右键、 无脑下一步导出 如…