特别推荐

Linux内核开发之编译和运行

Linux内核开发之编译和运行

在本篇文章中,读者可以跟着我们的一步一步的教程最终学会如何搭建Linux内核开发环境,并最终能成功运行自己编译的内核,本文主要是针对arm架构来编译Linux内核,因此读者不仅可以学习到如果编译内核,还将学会如何使用QEMU搭建arm仿真环境。 本文将介绍两种Linux内核编译方法 第一种为不借助任何编译系统的原始编译方法,相对较为复杂 第二种则借助BuildRoot编译系统实现了一键编译,相对比较简单 编译Linux内核需要在Linux系统中运行,推荐使用Ubuntu,并安装 build-essentials 包,本

阅读更多

全部文章

利用Pandas索引和选取数据

利用Pandas索引和选取数据

  • xhyl
  • March 14, 2020

使用Pandas做数据分析的时候,用的最多的功能恐怕就是对于数据集的索引,选组数据子集。Pandas库提供了很多非常实用的方法,了解并熟练使用这些方法而不是用for循环的方法将会事半功倍。在这一篇文章中,我们将着重介绍这些方法。 我们将使用2019年全国新能源汽车的销量数据作为演示数据,数据保存在一个csv文件中,读者可以在GitHub仓库下载到 https://github.com/pythonlibrary/practice-pandas-skills.git 本篇文章中会使用到两个库pandas 和 numpy,确保它们都正确的安装,而工作环境则使用jupyter notebook,如果有需要学习如何搭建环境的,可以阅读 数据科学家的一种工作环境 – virtualenv和Jupyter Notebook 。

阅读更多
用Python做自己的airdrop – PyQt5系列教程说明

用Python做自己的airdrop – PyQt5系列教程说明

  • xhyl
  • March 9, 2020

通过一个实际的小项目学会这些知识点 本系列教程的目的是希望读者通过一个不那么枯燥的方式了解一些重要的知识点,我们没有通过简单的堆砌概念,或用一些枯燥的示例来讲述一个一个知识点,而是期望读者能够一步一步做一个能够运行(或许在学习工作中还能用到) 的小软件,在实现项目的同时学习到知识点。本系列文章中涵盖的主要知识点包括: GUI桌面应用编程的基本逻辑 PyQt5实现一个应用需要掌握的基本概念和逻辑 Socket的基本概念和逻辑 线程的基本概念和逻辑 文章中使用到的代码也可以在 https://github.

阅读更多
听懂汽车的语言 – 使用Python控制CAN总线

听懂汽车的语言 – 使用Python控制CAN总线

  • xhyl
  • March 8, 2020

CAN总线是在汽车和工业领域广泛应用的一种通讯方式,电脑上并没有配备相应的物理硬件,市面上有很多公司提供不同的将CAN转为USB的设备,使用这些设备电脑就能够借由USB通过CAN总线跟汽车或者其他工业设备进行交流,通常来说,这些公司都会针对其对应的硬件设备提供相应的软件,不过因为其专业性,要不软件的价格比较贵的,要不免费的软件功能有限。 虽然是一个比较冷门的应用场景,但使用Python确实也是可以使用这些设备来进行CAN总线通讯的,这都得益于丰富的Python生态,在这一篇文章中,我们将介绍一个能够支持市面上常用的CAN设备的Python库: python-can ,这个库做的非常好,一方面可以支持多种不同的CAN设备(像 Vector, Kvaser, PCAN 等等),另一方面对总线的抽象也很好,同时提供了内置的log记录器,可以通过几行简单的代码将总线数据保存为常见的asc,csv,blf,甚至是数据库格式。

阅读更多
使用pyinstaller打包你的桌面应用 – PyQt5教程后记

使用pyinstaller打包你的桌面应用 – PyQt5教程后记

  • xhyl
  • March 1, 2020

当你写好一个python应用以后(有可能是命令行,有可能是GUI),你或许希望分享给他人使用,而别人可能并没有python环境,那么我们需要寻找一种方法生成可执行文件(比如Windows上的exe或macOs上的app) 当你有打包你的python应用的需求以后,你可能会像搜索引擎寻求帮助,你或许曾经搜索过“python 转 exe”,“python打包”等等这样的字眼,你或许曾看到过各种各样的相关解决方案,本文介绍的是其中的一种,但是可以负责任的说,这是目前最好的方案,并且是跨平台最好的方案,也就是说使用这个叫pyinstaller的工具,你可以把同样的代码打包在Windows,Linux以及macOs上运行。

阅读更多
PyQt5教程5 – 最后一环,完善接收功能

PyQt5教程5 – 最后一环,完善接收功能

  • xhyl
  • February 23, 2020

前边几篇文章中我们已经将发送和界面功能实现, 对于一个文件收发软件,它既可以是主机来发送文件,也可以作为目标机来接收文件,在这一篇文章中,我们将实现剩下所有的功能,即完成接收功能。 为了更直观的给大家展示本节的最终实现目标,我们先把实现结果的视频放在最前边,因为一台电脑不能给自己发送文件,因此,本节的测试需要使用两台电脑,并且这两天电脑需要连接到同一个局域网中。

阅读更多
一种基于模板的C代码自动生成方法

一种基于模板的C代码自动生成方法

  • xhyl
  • February 16, 2020

我们将在本文中介绍一种基于Python模板引擎的自动代码生成方法 在做C代码项目的时候,我们期望做到代码的高复用,高复用意味着代码的高配置性,即通过简单的配置修改达到复用代码的目的。如果代码高复用,支持灵活的配置,那么完全可以在上边做一个更简单的配置工具,用来修改代码配置,这么做相对于提供可以配置的.c/.h源代码有一些好处: 配置转换为容易理解的GUI描述,配置人员不需要深入理解C代码即可以实现配置 如果你只是想封装一个库给你的客户,你可以同时提供这样一个建议工具,即可以保护你的核心代码,也可以让客户容易上手 然而,能够实现基于模板的自动代码的前提是,你的原始C代码要足够灵活,剩下需要做的就是根据用户的输入信息,调整某些可以修改的参数或者调用,而这些配置可以存储在一些标准的数据存储格式中(如,xml,json,甚至于数据库等等)最后解析配置数据,生成配置相关的.

阅读更多