记录下安装过程。下载 ppython 相关文件, 下载地址: https://github.com/maiwang79/PPython-again
解压后所有文件放在了/ppython文件夹中。
测试过程:
1. 该文件夹中制作一个 testModule.py 文件:
# -*- coding: UTF-8 -*-
def add(a, b):
return a + b
2. 网站根目录制作 test.php 文件:
<?php
require_once("./ppython/php_python.php"); //框架提供的程序脚本
$p1 = 2;
$p2 = 3;
//"ppython"是框架"php_python.php"提供的函数,用来调用Python端服务
//调用Python的testModule模块的add函数,并传递2个参数。
$ret = ppython("testModule::add", $p1, $p2);
echo "result: ".$ret; //打印 5
?>
3. 检查一下apache 有没有启用 sockets:
D:\phpstudy_pro\Extensions\php\php7.3.4nts>php -m
[PHP Modules]
bcmath
calendar
Core
ctype
curl
date
dom
fileinfo
filter
gd
hash
iconv
json
libxml
mbstring
mysqli
mysqlnd
openssl
pcre
PDO
pdo_mysql
pdo_sqlite
Phar
readline
Reflection
session
SimpleXML
SPL
standard
tokenizer
wddx
xml
xmlreader
xmlwriter
zip
zlib
[Zend Modules]
没看到 sockets,说明没启用。这时候访问: http://localhost/test.php
出现错误提示:Fatal error: Uncaught Error: Call to undefined function socket_create() in D:\discuz_study\www\ppython\php_python.php:35 Stack trace: #0 D:\discuz_study\www\test.php(9): ppython('testModule::add', 2, 3) #1 {main} thrown in D:\discuz_study\www\ppython\php_python.php on line 35
修改php.ini文件并重启apache。
extension=sockets
再看一看sockets有没有加载:
D:\phpstudy_pro\Extensions\php\php7.3.4nts>php -m
[PHP Modules]
bcmath
calendar
Core
ctype
curl
date
dom
fileinfo
filter
gd
hash
iconv
json
libxml
mbstring
mysqli
mysqlnd
openssl
pcre
PDO
pdo_mysql
pdo_sqlite
Phar
readline
Reflection
session
SimpleXML
sockets
SPL
standard
tokenizer
wddx
xml
xmlreader
xmlwriter
zip
zlib
[Zend Modules]
可以看到加载了。
4. 建立一个文本文件 logs\ppython.log
5. 启动python监听:
运行:Anaconda Powershell Prompt (Anaconda3)
(base) PS D:\> cd D:\discuz_study\www\ppython
(base) PS D:\discuz_study\www\ppython> python php_python.py
-------------------------------------------
- PPython Service
- Time: 2021-02-13 07:17:01
-------------------------------------------
Listen port: 10240
charset: utf-8
Server startup...
6. 访问网址: http://localhost/test.php ,返回结果:
result: 5
说明成功了。