mirror of
https://github.com/php-win-ext/phpy.git
synced 2026-03-25 17:32:16 +01:00
60 lines
1.2 KiB
Markdown
60 lines
1.2 KiB
Markdown
构建 Python 模块
|
|
====
|
|
在 `Python` 中调用 `PHP` 的函数时需要先构建 `Python` 的 `phpy` 模块。
|
|
|
|
## 编译依赖
|
|
- `cmake 3.16` 或更高版本
|
|
- `php 8.1 (embed)` 或更高版本,编译 `PHP` 时需要增加 `--enable-embed` 参数
|
|
- `Python 3.8` 或更高版本,需要安装 `python3-dev`
|
|
|
|
## 编译配置
|
|
|
|
### `PHP_CONFIG`
|
|
|
|
指定 `php-config` 指令的路径,默认为相对路径,例如:
|
|
|
|
```shell
|
|
cmake . -D PHP_CONFIG=/usr/local/php/bin/php-config
|
|
```
|
|
|
|
### `PYTHON_CONFIG`
|
|
|
|
指定 `python-config` 指令的路径,默认为相对路径,例如:
|
|
|
|
```shell
|
|
cmake . -D PYTHON_CONFIG=/usr/local/bin/python3-config
|
|
```
|
|
|
|
## 构建
|
|
```shell
|
|
make -j 4
|
|
```
|
|
|
|
编译成功后在 `lib` 目录下会生成 `phpy.so`,可以将此文件复制到任意 `Python` 的 `sys.path` 目录中。
|
|
|
|
## conda 工具
|
|
|
|
可使用 `conda` 工具来管理 `Python` 环境。
|
|
|
|
### 创建 `Python` 环境
|
|
|
|
```shell
|
|
conda create -n py38 python=3.8
|
|
# 激活
|
|
conda activate py38
|
|
```
|
|
|
|
### `pip` 加速
|
|
```shell
|
|
# 阿里云
|
|
pip config set global.index-url https://mirrors.aliyun.com/pypi/simple
|
|
# 清华源
|
|
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
|
|
```
|
|
|
|
## 单元测试
|
|
```shell
|
|
pip install pytest
|
|
pytest -v tests/
|
|
```
|