Skip to main content

自动Cython,使用Cython批量编译.py文件为.pyd文件!

Project description

AutoCython

自动 Cython, 使用 Cython 批量编译 .py 文件为 .pyd 文件! py_pyd

安装

pip install AutoCython-jianjun

依赖

Cython 和 C/C++ 编译器

如果你都配置完毕了你可以跳过本节.

Cython

pip install Cython

C/C++ 编译器

推荐 gccvisual studio 选一个, 其他编译器请查阅 Cython 文档.

  • VS 安装简便, 占用空间大, 配置简单.
  • gcc 安装简便, 占用空间小, 配置比较复杂.

不想折腾或者你是 Windows 的话推荐安装 VS, Linux 等系统可以直接使用自带的 gcc。

大部分的编译环境都可以使用, 我在 Win, Linux, Mac, Python3.6 到 Python3.10 都可以使用.

需要注意的是, 如果你使用的 Python 是64位的, 那么对应的 C、C++ 编译器也必须为64位;

win下gcc推荐安装MinGW

使用

命令行

命令行

使用命令行进行编译:

AutoCython -h 或者 AutoCython --ch 查看英文和中文帮助.

# 编译一个文件
AutoCython -f test.py

# 编译一个目录
AutoCython -C D:/python_code/ProjectPath

AutoCython

例子

编译目录 D:/python_code/ProjectPath
排除所有名为 tmp.py 的文件
排除 ./ProjectPath/print_cy.py 文件
排除 ./ProjectPath/data/tmp 目录下的文件不编译
使用2个CPU核心
只删除编译后产生的 build 文件夹和中间文件 setup_file, 保留自动生成的 C 代码.\

AutoCython -C D:/python_code/ProjectPath -E tmp.py;./ProjectPath/print_cy.py;./ProjectPath/data/tmp -M 2 -D bp

特性

  • 全自动:自动编译当前目录下所有.py文件, 支持指定目录编译或单文件编译;
  • 个性化:支持指定排除目录或排除文件跳过编译;
  • 高效率:默认启动进程数为cpu核心数四分之一, 大多数情况下可以把cpu跑满;
  • 易纠错:快速纠错, 在编译失败时能极快的获取错误信息;

常见错误

  • print(end='')
    Cython 不支持 print 函数的 end 参数, 可以在外部定义 def my_print(*args, **kwargs): print(*args, end='', **kwargs), 然后在需要编译的文件中导入这个外部函数.

  • 新建文本文档.py
    文件名需要符合 C 命名规范

其他问题请查阅 Cython 官方文档.

手动指定不编译

在不需要编译的文件 头两行 任意一行写上 # AucoCython No Compile 则该文件会跳过编译.

更新记录

  1. 20220613 更新对Linux的支持, Linux下需要配置gcc&g++
  2. 20221123 可以通过文件头手动指定不编译的文件
  3. 20230306 更新可以指定命令行头如 Python310 以此支持非Widnows系统下编译
  4. 20230324 更新文档

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

AutoCython-jianjun-1.3.3.tar.gz (17.9 kB view details)

Uploaded Source

Built Distribution

AutoCython_jianjun-1.3.3-py3-none-any.whl (16.7 kB view details)

Uploaded Python 3

File details

Details for the file AutoCython-jianjun-1.3.3.tar.gz.

File metadata

  • Download URL: AutoCython-jianjun-1.3.3.tar.gz
  • Upload date:
  • Size: 17.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.10.7

File hashes

Hashes for AutoCython-jianjun-1.3.3.tar.gz
Algorithm Hash digest
SHA256 b0ecce12934933bc63a6cb51e36ae3a7b728f8478f7c46137ef560631f3d4bab
MD5 bd17b835bd67818b7bbf74ef9eccc86a
BLAKE2b-256 63b9e6bf05163dcad033c2d8aca7977f96de833575033df140d4fcd94fc8757f

See more details on using hashes here.

File details

Details for the file AutoCython_jianjun-1.3.3-py3-none-any.whl.

File metadata

File hashes

Hashes for AutoCython_jianjun-1.3.3-py3-none-any.whl
Algorithm Hash digest
SHA256 3f607a3431b5f0f4cc1d41763d2d9c57b55dbf4c4b1173d259ae302226c67105
MD5 ee81327bf0d1982befd287c9dab74039
BLAKE2b-256 101af09a9aafee98abafcf2681bacfb48d05cd9fb90a0f8b354da1be9ab731cc

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page