GaGa's Blog

One GaGa, One World !

ctypes是Python标准库中的一个外部函数接口(FFI,Foreign Function Interface)模块,主要用于在Python中调用C语言编写的动态链接库,并与底层C代码进行交互。它不需要安装第三方依赖,通常可以直接通过import ctypes使用。


1.ctypes能做什么

Python本身适合快速开发,但在某些场景下,需要调用C/C++编写的底层能力,例如操作系统接口、硬件驱动接口、图像处理算法或已有的商业SDK。

Read more »

PDF和EPUB电子文档格式特点

对比 PDF EPUB
页面布局 固定,不易变形 自适应屏幕,可调整排版
字体大小 通常需要缩放页面 可以自由调整
阅读体验 适合论文、报告、扫描文件 适合小说、电子书、长篇阅读
适用设备 电脑、平板、手机 手机、平板、电子书阅读器
文件特点 保留原始页面格式 适合流式阅读,通常更轻便

常见操作

  • PDF转EPUB:适合将PDF转换为便于手机阅读的电子书,但复杂排版可能错乱。
  • EPUB转PDF:适合打印或固定页面布局。
  • 打开PDF或EPUB:可以使用相应的阅读器。
Read more »

常见对应关系

系统/环境 GCC glibc
RHEL/CentOS 7.4 4.8.5 2.17
RHEL/CentOS 7.x + Developer Toolset 7.x 2.17
RHEL/CentOS 7.x GCC7.3.1 通常glibc 2.17
RHEL/CentOS 8.x GCC8.x 2.28
RHEL/CentOS 9.x GCC11.x 2.34

Scrapy2.19为例

  • 异步并发:基于Twisted事件驱动,支持async/await
  • 高并发爬取:适合大量URL和网络IO场景
  • Middleware机制:方便处理代理、Cookie、User-Agent、重试等
  • Scheduler调度:负责Request排队、优先级和去重
  • Pipeline处理数据:清洗、校验、保存数据库
  • 支持任务暂停恢复:通过JOBDIR保存爬取状态
  • 高度可扩展:支持自定义Middleware、Pipeline、Extension等

核心架构

1
2
3
4
5
6
7
8
9
10
11
12
13
Spider
↓
Engine
↓
Scheduler
↓
Downloader
↓
Response
↓
Spider
↓
Item → Pipeline → 数据库
Read more »

CS是Computer Science(计算机科学)简称

  • CS1:通常指Computer Science 1,即计算机科学入门/基础编程课
  • CS2:通常指Computer Science 2,即计算机科学第二阶段课程,一般会在CS1基础上学习数据结构、算法、面向对象编程等。

Python GIL(全局解释器锁)

Python 的 GIL (Global Interpreter Lock),这是导致Python 多线程无法实现真正并行(只能并发)的核心原因。

  • Python 3.15 及以上版本:从 Python 3.15 开始,官方默认启用了自由线程(Free-threading,无 GIL) 构建。这是从语言层面根本性移除 GIL 并行限制的版本,但它也带来了约 5%–10% 的单线程性能损失,以及部分 C 扩展模块的兼容性挑战。

TDD是一种软件开发方法:先写测试,再写实现代码,最后重构代码。核心思想是:先明确程序应该实现什么行为,再编写代码让这些行为得到满足,而不是先写完代码再补测试。


1.TDD的核心流程

TDD通常遵循一个循环,称为红-绿-重构(Red-Green-Refactor)。

Read more »

1.什么是MinGW

MinGW(Minimalist GNU for Windows)是一个面向Windows平台的GNU开发工具集,主要用于在Windows系统下编译和构建C/C++程序。它提供了GCC编译器、链接器、头文件和相关开发工具,使开发者能够使用接近Linux/Unix环境的GNU工具链开发Windows原生应用程序。

MinGW及其常见变体MinGW-w64可以生成Windows可执行文件(.exe)和动态链接库(.dll)。

2.MinGW的主要特性

Read more »

主要版本技术来源

Kylin Server版本 主要技术路线
V10早期版本 与CentOS/RHEL生态有较强关系,RPM体系
V10 SP1及以后 逐步转向openEuler生态,并进行大量自主修改
V10 SP3 明确融合openEuler各个LTS/SP版本特性,同时内核自主维护
V11 新一代自主服务器OS,继续深度融合openEuler等开源社区技术

GIL的全称是Global Interpreter Lock,中文通常称为全局解释器锁。它是传统CPython解释器中的一把全局互斥锁,用于控制同一时刻哪些线程可以执行Python字节码。理解GIL的关键是:Python可以创建多个线程,但在传统的GIL模式下,多个线程通常不能同时执行Python代码来实现多核CPU并行计算。


1.GIL到底是什么

可以把GIL理解为一个公共的执行令牌。

Read more »

python --help用于查看Python解释器本身支持的命令行参数。注意,它与python main.py --help不同:前者查看Python运行环境的参数,后者通常查看脚本通过argparse定义的参数。


1. 查看帮助信息

python --help
Read more »
0%