Ubuntu 22安装使用Codon高性能Python编译器记录

news/2025/2/5 14:03:21/

Ubuntu 22安装使用Codon高性能Python编译器记录

Codon 在官方 Ubuntu 存储库中没有直接的教程,但可以尝试如下方法进行安装。

一、更新系统

终端输入:

sudo apt update

以及

sudo apt upgrade

二、安装curl

输入指令:

sudo apt install curl

三、安装codon

输入指令:

/bin/bash -c "$(curl -fsSL https://exaloop.io/install.sh)"

在这里插入图片描述

四、配置

打开.bashrc文件,查看bashrc文件可以使用Ctrl+H按键,在根目录下查看bashrc文件,并在bashrc文件中添加:

export PATH=/home/user/.codon/bin:$PATH

其中user替换为自己的目录。按Ctrl+H后可以在根目录下直接看到.codon文件夹,查看文件夹属性也可以。
在这里插入图片描述
我的替换为:

export PATH=/home/cj/.codon/bin:$PATH

终端输入:

source .bashrc

五、验证

输入指令:

codon --version

输出版本信息
在这里插入图片描述
完成安装。

六、配置环境变量及代码运行

1.在系统路径下搜索libpython文件
在这里插入图片描述

找到的so文件如下
在这里插入图片描述
这里每个电脑的配置不一样,总之就是找到libpython x.x.so文件,再打开.bashrc,添加

export CODON_PYTHON=/path/to/libpython.X.Y.so

我的添加文件如下:
在这里插入图片描述
加入后输入:

source .bashrc

2.运行代码
尝试运行代码,在代码文件夹下打开终端输入:

codon run -release test.py

test.py为我自己的Python代码。会出现报错

test.py:2:8-14: error: no module named 'pandas'
time.codon:44:43-49: error: name 'stderr' is not defined
time.codon:225:8-12: error: name 'fabs' is not defined
test.py:9:8-19: error: no module named 'time'

解决方法:
输出问题应该是引用三方库时,出现部分引用问题。原始的python代码头部为:

import os
import pandas as pd
import time

修改为:

import os
from python import pandas as pd
from python import time

运行方式可以选择上面的指令:

codon run -release test.py

也可以使用指令生成二进制文件:

codon build -release -exe test.py

然后在终端输入:

./test

3.结果对比
本次代码为使用pandas库,对表格文件进行数据分析。原始代码用时为6.88s。
在这里插入图片描述
codon加速后用时2.36s。
在这里插入图片描述
差不多3倍左右的加速效果。


http://www.ppmy.cn/news/842604.html

相关文章

银行安全用电监管平台可行性研究及解决方案

2017年4月26日,国务院安全生产委员会印发《国务院安全生产委员会关于开展电气火灾综合治理工作的通知》(安委〔2017〕4号),强调用三年时间综合治理电气火灾工作,提高社会单位发现和处置消防电气安全隐患能力&#xff0…

After Effects CC SDK 使用指南(三)—— 第一章 介绍 (下)

第一章 介绍 其他文章链接 序 第一章 介绍-上 第一章 介绍-下 工程示例 当前API支持的每种类型的插件至少都有一个示例,以及用于说明特定概念的项目。 在示例项目中,我们尽可能地使代码保持简单。一个花哨的实现方式可能会让我们在编程课上取得好成…

After Effects CC SDK 使用指南(二)—— 第一章 介绍 (上)

其他文章链接 序 第一章 介绍-上 第一章 介绍-下 第一章 介绍 欢迎使用AdobeAfter EffectsCC软件开发工具包!这是一个全新的文档,并不断更新。SDK的最新公共版本地址:https://www.adobe.io/apis/creativecloud/aftereffects.html 虽然我们试图按逻辑顺…

HttpClient调用后台接口(用CloseableHttpClient发送get/post请求)

前言 在没有页面的情况下来获取接口返回的数据(一般都是为JSON),我们可以通过一些工具模拟HTTP请求 服务端模拟HTTP请求 通过JAVA代码进行HTTP请求的发送 引入依赖 <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpcli…

After Effects CC SDK 使用指南(一)—— 序

前言 很久之前就想一篇文章&#xff0c;一直没有太多时间。本系列文章将长期更新&#xff0c;主要是翻译Adobe官方的 pdf 文件&#xff0c;因本人能力有限&#xff0c;难免有翻译错误之处&#xff0c;欢迎指正。 文档原文附在后半部分&#xff0c;官方资料下载地址 欢迎转载…

常用数据分类算法原理介绍、优缺点分析与代码实现[LR/RF/DT/SVM/NavieBayes/GBDT/XGBoost/DNN/LightGBM等]

本文的主要目的是总结记录日常学习工作中常用到的一些数据分类算法&#xff0c;对其原理简单总结记录&#xff0c;同时分析对应的优缺点&#xff0c;以后需要的时候可以直接翻看&#xff0c;避免每次都要查询浪费时间&#xff0c;欢迎补充。 机器学习领域中常用的分类模型包括以…

Socket编程(go语言)

目录 socket基础知识 什么是Socket? Socket通信 IPV4地址 IPV6地址 Go支持的IP类型 TCP Socket TCP Client TCP Server 控制TCP连接 UDP Socket 现在的网络编程几乎都是用Socket来编程。我们每天打开浏览器浏览网页时&#xff0c;浏览器进程怎么和Web服务器进行通信…

PICT 下载

下载地址 http://download.microsoft.com/download/f/5/5/f55484df-8494-48fa-8dbd-8c6f76cc014b/pict33.msi