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

2023-11-17

如何将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内置函数

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将Python项目部署到新电脑上运行? 的相关文章

随机推荐

  • [Paper-CV] ECCV 2012 papers 1

    http applesun0757 blog 163 com blog static 18737419220126702145274 Paper CV ECCV 2012 papers 1 2012 07 07 00 21 45 分类 Pa
  • linux中替换命令详解,linux中tr命令详解 (替换,删除d,缩减s)

    tr用来从标准输入中通过替换或删除操作进行字符转换 tr主要用于删除文件中控制字符或进行字符转换 特别要注意一点 tr 只能进行字符的替换 缩减和删除 不能用来替换字符串 最常用选项的tr命令格式为 tr c d s string1 to
  • C# 网络编程之Tcp实现客户端和服务器聊天

    最近使用Socket网络套接字编程中 在同步与异步通讯中客户端与服务器总是无法响应 但在学习Tcp协议编程中完成了通讯聊天功能 下面简单讲讲我最近学到的及Tcp聊天的源代码及详细注释 Tcp协议是一个传输层的协议 在Tcp协议编程中它通常使
  • OpenGL超级宝典 纹理(一)

    文章目录 纹理 创建并且初始化纹理 更新纹理数据 从着色器中读取数据 采样器类型 控制纹理数据的读取方式 创建采样器对象和绑定到纹理单元 纹理过滤 设置过滤器 加载纹理 完整代码展示 shader vertex shader fragmen
  • mysql 授权管理和设置

    1 给指定数据库增加所有权限 所有库即 GRANT ALL PRIVILEGES ON TO 用户名 IDENTIFIED BY 密码 WITH GRANT OPTION 设置完之后更新权限表 FLUSH PRIVILEGES 2 给用户增
  • C++11模板元编程-std::enable_if示例详解

    文章目录 1 限制模板函数的参数类型 2 模板类型偏特化 传送门 gt gt AutoSAR实战系列300讲 糖果Autosar 总目录 C 11中引入了std enable if函数 函数原型如下 template lt bool B c
  • AI+数据安全,探索数据安全防护新手段

    随着 4G 正式商用 带宽将不再是数据传输的瓶颈 人类社会真正意义的进入了以手持终端 各类传感器为代表的移动互联网 万物互联 人工智能时代 我们将不再受限于地理位置 可尽情享受着手机购物 电子支付 媒体社交 个性化推送 VR等各种便捷和个性
  • 计算机图形学十五:基于物理的渲染(蒙特卡洛路径追踪)

    蒙特卡洛路径追踪 摘要 1 蒙特卡洛积分 Monte Carlo Integration 2 蒙特卡洛路径追踪 Monte Carlo Path Tracing Reference 本篇文章同步发表于知乎专栏 https zhuanlan
  • PHP与JSON的一些常用操作

    PHP把数据写入JSON文件 PHP读取JSON数据
  • C++ 抽象类

    抽象类 接口 接口描述了类的行为和功能 而无需完成类的特定实现 C 接口时通过抽象类实现的 设计抽象类的目的 是为了给其他类提供一个可以继承的适当的基类 抽象类本类不能被用于实例化对象 只能作为接口使用 注意 如果试图实例化一个抽象类的对象
  • 对象的初始化和清理

    对象的初始化和清理 构造函数和析构函数 对象的初始化和清理也是两个非常重要的安全问题 一个对象或者变量没有初始状态 对其使用后果是未知 同样的使用完一个对象或变量 没有及时清理 也会造成一定的安全问题 c 利用了构造函数和析构函数解决上述问
  • visual studio2019创建解决方案,并在一个解决方案中包含多个项目

    系列文章目录 文章目录 系列文章目录 前言 一 使用步骤 前言 之前一直使用visual studio2019一直都是一个解决方案 下面包含一个工程 这次写一个网络同步的模块 具体使用boost的asio模块 我们需要建立一个解决方案 一个
  • 使用slickedit调试开源代码

    slickedit linux下的神器啊 阅读代码堪比 source insight 调试代码堪比 visual studio nginx优秀的web服务器 因为其具有多进程 后台进程的特点 因此本文选择以此为例讲解slickedit如何对
  • Java中的排序算法

    冒泡排序 核心思想 冒泡排序 核心思想 冒泡排序 Bubble Sort 又被称为气泡排序或泡沫排序 它是一种较简单的排序算法 它会遍历若干次要排序的数列 每次遍历时 它都会从前往后依次的比较相邻两个数的大小 如果前者比后者大 则交换它们的
  • LeetCode题解——394. 字符串解码

    题目相关 题目链接 LeetCode中国 https leetcode cn com problems decode string 注意需要登录 题目描述 给定一个经过编码的字符串 返回它解码后的字符串 编码规则为 k encoded st
  • 昨晚做梦面试官问我三色标记算法

    本文已收录至GitHub 推荐阅读 Java随想录 微信公众号 Java随想录 原创不易 注重版权 转载请注明原作者和原文链接 文章目录 三色标记算法 增量更新 原始快照 某天 爪哇星球上 一个普通的房间 正在举行一场秘密的面试 面试官 我
  • Sql server 存储过程加密

    本方法可用于加密SQL存储过程 函数或者触发器 使用 WITH ENCRYPTION 选项 WITH ENCRYPTION 子句对用户隐藏存储过程的文本 例子 IF OBJECT ID N Pro Encrypt Test IS NOT N
  • PySide6-控件教程-005-QLabel标签控件-内边距、缩放、伙伴关系

    QLabel 标签控件 本文摘录自我的开源教程 PySide6 代码式教程 QLabel CSDN 平台仅做镜像 答疑 纠错请至 GitHub 提交 issue 内边距 QLabel还可以调整内边距 启用内容缩放 以更细致地调节显示效果 s
  • 与游戏世界交互作业

    一 编写一个简单的鼠标打飞碟 Hit UFO 游戏 游戏内容要求 游戏有 n 个 round 每个 round 都包括10 次 trial 每个 trial 的飞碟的色彩 大小 发射位置 速度 角度 同时出现的个数都可能不同 它们由该 ro
  • 如何将Python项目部署到新电脑上运行?

    如何将Python项目部署到新电脑上运行 在工作中 可能需要在新服务器上部署项目代码 例如新增服务器 把测试环境的代码部署到生产环境等 在生活中 也会遇到换新电脑 需要将自己在旧电脑上写的 项目 代码拷贝到新电脑上运行 本文将这个过程中的关
Powered by Hwhale