discuzX 3.4:尝试安装ppython

记录下安装过程。下载 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

扫描二维码关注公众号,回复: 12885617 查看本文章

再看一看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

说明成功了。

猜你喜欢

转载自blog.csdn.net/bq_cui/article/details/113801089