PyPy+Cython对Python进行加速,以及乱码问题

news2024/9/20 8:08:44

在之前测试了使用Cython对代码进行优化加速
https://blog.csdn.net/qq_43199509/article/details/133860665

PyPy具体是啥可以看之前的知乎介绍,个人理解就是Python的另一种解释器
https://www.zhihu.com/question/266096929/answer/2383570933

PyPy下载
https://www.pypy.org/download.html

下载解压后,直接放到目录下,然后需要在环境变量里添加一条路径即可算作安装完成(我是windows10)
在这里插入图片描述
在命令行里输入pypy能出现调用回显就表示成功
通过以下命令升级pip 以及安装Cython

pypy -m ensurepip --upgrade
pypy -m pip install Cython

之后用同样的方法编译文件成c扩张,再通过pypy调用
[https://blog.csdn.net/qq_43199509/article/details/133860665]
可以看到Cython编译的文件是由python解释器版本+平台版本共同决定的,因此可以说是换一个平台/解释器就要重新编译,而且新解释器比如pypy自己也需要安装Cython才行
在这里插入图片描述
在运行的时候发现通过命令行调用乱码
在这里插入图片描述
但是在pycharm里用pypy调用输出是正常的
在这里插入图片描述
怀疑是编码问题,网上有提到需要更改环境变量"PYTHONIOENCODING"为GBK来防止乱码,测试了如下方法均无效:
1.在环境变量里设置PYTHONIOENCODING,无效
2.在pyx文件开头指定gbk编码,无效
3.在pyx文件里用os.environ[“PYTHONIOENCODING”] = "GBK"设置,无效
最后发现在命令行里

set PYTHONIOENCODING=GBK

可以解决问题,猜测不同方式运行的环境变量有命名空间之类的限制不共享
在这里插入图片描述

最终用时:
纯Python3.9 26秒左右
Cython,PyPy,Java单独跑是7秒左右,
Cython+PyPy可以变成3.6秒,提示还是比较明显的

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

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

相关文章

知名低代码公司有哪些?最新国内十大低代码平台排名

什么是低代码和低代码平台 低代码(Low-Code)是一种软件开发方法,它使得开发人员能够通过图形界面、拖放组件和模型驱动的逻辑,快速地构建和部署应用程序,而无需编写大量的代码。 而低代码开发平台(LCDP&am…

Sync Folders Pro for Mac文件夹数据同步工具

Sync Folders Pro for Mac 是一款功能强大的文件夹同步工具,旨在帮助用户在 Mac 计算机和移动设备之间创建双向同步。这款软件支持各种文件系统和设备,如 iPhone,iPad,iPod,Android 等。通过这款软件,用户可…

众和策略:几点开盘和收盘股票?

股票开盘和收盘时间是投资者有必要知道的要害信息,因为它们挑选了股票生意的初步和结束时间。在此文章中,咱们将从多个视点分析股票开盘和收盘时间,包括全球商场开盘时间、技术分析对开盘前后价格不坚决的影响、以及日内生意者如安在开盘和收…

【社区小程序制作】便捷社区服务的新选择

社区小程序的出现为居民提供了便捷的社区服务,促进了社区内的信息共享和互动。下面将介绍社区小程序的优点和制作流程。 优点 便捷的社区服务:社区小程序为居民提供了便捷的社区服务。居民可以通过小程序查询社区通知、报修维修等,高效且节省…

字符与数字的相互转换

一、字符转数字 char类型字符转换为数字,其实是转换为ASCII码值 有两种方式: 1.强制类型转换,结果为对应的ASCII码值 char v1 a;char v2 z;char v3 1;char v4 9;int num1 (int)v1;int num2 (int)v2;int num3 (int)v3;int num4 (int)v…

word字间距突然变大怎么办?

文章目录 原因:word字间距突然变大,是文字布局设置造成的。 解决方法如下: 1、首先在打开的文档中,可以看到如下图所示部分字间距变大。 2、这时鼠标选中字间距变大的区域、或者全选该部分文字。命令选项卡内一般选择文字靠左设置…

微信视频发出去后无法播放怎么办?解决办法来了

微信作为现今生活工作使用最频繁的软件之一,发送文档、播放视频、分享照片截图等是经常操作的,然而当我们向对方发送一个视频文件的时候,电脑端播放器播放正常,通过微信发出去之后结果无法播放了。其实微信无法播放视频有很多原因…

(三十四)大数据实战——scala运行环境安装配置及IDEA开发工具集成

前言 本节内容我们主要介绍一下scala运行环境的安装配置以及在idea开发工具中集成scala插件,便于scala项目的开发。 在开始scala安装配置之前,我们要先安装好jvm运行环境,scala运行于Java虚拟机(JVM)上,并…

JS中欺骗词法作用域的eval和with

1、词法作用域 简单地说,词法作用域就是定义在词法阶段的作用域。换句话说,词法作用域是由你在写代码时将变量和块作用域写在哪里来决定的,因此当词法分析器处理代码时会保持作用域不变(大部分情况下是这样的)。 考虑…

上抖音热搜榜需要怎么做?

抖音热搜榜是根据用户的搜索行为和搜索量数据进行排名的榜单。具体排名规则如下: 1. 关键词匹配度:抖音搜索引擎会根据用户搜索的关键词与视频标题、标签、内容等进行匹配,匹配度越高,排名越靠前。 2. 视频质量:抖音…

6-k8s-控制器版本管理

文章目录 一、概念介绍二、配置介绍三、版本生成测试四、版本回滚测试 一、概念介绍 什么是控制器:在k8s中,控制器是一种用于控制和管理Pod的管理器,包括Deployment、ReplicaSet、StatefulSet等。 什么是控制器版本管理:是指对于…

django无法导入第三方库

引子 有的人可能会很困惑,为什么自己在pip中安装了某个包,但是在django中死活无法导入。 在cmd中能够导入。 启动django,总是无法导入。 本文将会用一分钟解决你的困惑。 正文 那么本文以上述的第三方库dj_db_conn_pool为例,…

Android:展锐T760平台camera驱动调试

一、模块平台框架 平台介绍 基于UMS9620x平台集成Camera时,共有四类信号需要了解: 1、MIPI CSI信号:该平台有DPHY和CPHY两种MIPI信号。  DPHY配置:包括数对差分数据信号DP/N,和一对差分时钟信号CKP/N。  …

超全面的前端工程化配置指南

前端工程化配置指南 本文讲解如何构建一个工程化的前端库,并结合 Github Actions,自动发布到 Github 和 NPM 的整个详细流程。 示例 我们经常看到像 Vue、React 这些流行的开源项目有很多配置文件,他们是干什么用的?他们的 Commit…

Typora+PicGo+Github+CSDN梦幻联动

文章目录 一、快速搭建个人免费图床二、Typora图片实现自动上传三、Typora图片上传到CSDN出现错误 一、快速搭建个人免费图床 之前写过一篇 快速搭建个人免费图床 的文章,但是每次都要把图片拖到PicGo里面才能生成链接很麻烦,而且在本地用Typora写的文章…

C++ —— Tinyxml2在Vs2017下相关使用2(较文1更复杂,附源码)

相关链接 C —— Tinyxml2在Vs2017下相关使用1(附源码) tinyxml2简介 TinyXML2是一个简单,小巧,高效,CXML解析器,可以很容易地集成到其他程序中。TinyXML-2解析一个XML文档,并从中构建一个 可以…

强化学习章节脉络

强化学习是在求解最优策略

Python爬虫:制作一个属于自己的IP代理模块

前言 在Python爬虫过程中,为了避免被网站的反爬虫机制干扰,我们需要使用IP代理。所谓IP代理,就是通过修改网络请求中的IP地址,来达到隐藏真实IP地址的效果。本文将教你如何制作一个自己的IP代理模块,让你的爬虫更加稳…

网络库OKHttp(1)流程

序、慢慢来才是最快的方法。 背景 OkHttp 是一套处理 HTTP 网络请求的依赖库,由 Square 公司设计研发并开源,目前可以在 Java 和 Kotlin 中使用。对于 Android App 来说,OkHttp 现在几乎已经占据了所有的网络请求操作。 OKHttp源码官网 版…

8.14 PowerBI系列之DAX函数专题-分析客户购买行为

需求 实现 其实如果同时输出订单号的情况下,可以通过订单号出现的次数判断同一订单中同时购买与否的关系。 同时购买了A和B的客户 var v_cust_1 calculatetable(values(客户表[客户姓名]),filter(订单表,订单表[产品编号] "off-pa-10001970")) var v…