自动Cython,使用Cython批量编译.py文件为.pyd文件!
Project description
AutoCython
自动 Cython, 使用 Cython 批量编译 .py
文件为 .pyd
文件!
安装
pip install AutoCython-jianjun
依赖
Cython 和 C/C++ 编译器
如果你都配置完毕了你可以跳过本节.
Cython
pip install Cython
C/C++ 编译器
推荐 gcc
和 visual 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
例子
编译目录 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
则该文件会跳过编译.
更新记录
- 20220613 更新对Linux的支持, Linux下需要配置gcc&g++
- 20221123 可以通过文件头手动指定不编译的文件
- 20230306 更新可以指定命令行头如
Python310
以此支持非Widnows系统下编译 - 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
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | b0ecce12934933bc63a6cb51e36ae3a7b728f8478f7c46137ef560631f3d4bab |
|
MD5 | bd17b835bd67818b7bbf74ef9eccc86a |
|
BLAKE2b-256 | 63b9e6bf05163dcad033c2d8aca7977f96de833575033df140d4fcd94fc8757f |
File details
Details for the file AutoCython_jianjun-1.3.3-py3-none-any.whl
.
File metadata
- Download URL: AutoCython_jianjun-1.3.3-py3-none-any.whl
- Upload date:
- Size: 16.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.10.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3f607a3431b5f0f4cc1d41763d2d9c57b55dbf4c4b1173d259ae302226c67105 |
|
MD5 | ee81327bf0d1982befd287c9dab74039 |
|
BLAKE2b-256 | 101af09a9aafee98abafcf2681bacfb48d05cd9fb90a0f8b354da1be9ab731cc |