Python运行 JavaScript, C/C++, PHP
JavaScript
这里介绍一个自带的 Python 库:execjs
Python
可以通过 execjs
库运行 js
代码;直接上代码:
JavaScript
代码:
function sayHello(){
return "Hello JavaScript";
}
Python 代码通过 JS 的返回值进行交互操作
Python
运行 JavaScript
代码:
import execjs
jscode = """function sayHello(){
return "Hello JavaScript";
}"""
sign = execjs.compile(jscode)
print(sign.call('sayHello'))
print("Hello Python")
execjs.compile(jscode)
对于 js 的代码进行编译;将编译好的结果赋值给变量 sign
, 变量使用 call 方法调用 js 函数执行;
C/C++
这里介绍一个自带的 Python 库:ctypes
Python
可以通过 ctypes
库运行 C/C++
编译的 .dll
文件;直接上代码:
C/C++
代码:
hello.c 代码
#include <stdio.h>
_declspec(dllexport) int sum()
{
printf("Hello World !\n");
printf("---------我是 C 语言:-----------\n");
return 0;
}
hello.h 代码:
#pragma once
_declspec(dllexport) int sum(int a, int b)
Python
代码
from ctypes import *
great_module = cdll.LoadLibrary("./Project3.dll") # 路径需要准确
print("---------我是python语言:-----------\n")
Python 代码运行 C++ 时,在生成 .dll 文件会出现意外,下面附带 .dll 文件的生成办法
DLL 文件生成流程
第一步 新建空项目:
选择 项目类型
第二步 添加源文件:
第三步 添加头文件:
最后一步 编译运行 生成需要的 .dll 文件:
PHP
这个语言 就需要下载 PHP
了
通过 Python
运行 PHP
需要使用:subprocess
PHP
安装完成后需要 使用 PHP
的绝对路径,接下来上代码,看效果:
PHP
代码:
<?php
//测试
echo '---------我是 PHP 语言:-----------\n';
?>
Python 代码:
import subprocess
def run_cmd(cmd):
p = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE)
stdout, stderr = p.communicate()
if stdout:
stdout = stdout.rstrip()
if stderr:
stderr = stderr.rstrip()
return (stdout, stderr, p.returncode)
a, b, c = run_cmd('D:\\Configuration_file\\PHP\\php8\\php.exe hello.php ')
print("PHP:", a.decode('utf-8'))
print(b)
print(c)
# print(a.decode('gbk'))
print("---------我是python语言:-----------")
PHP 需要安装配置 ,接下来是 PHP 的安装流程
PHP 安装流程
配置 环境 https://cloud.tencent.com/developer/article/1705262
官网地址: https://windows.php.net/download
下载 VS16 x64 Thread Safe 压缩包 :
压缩包解压到新建的文件夹内
Apache安装配置可参考这里:传送门
下载 Apache :https://www.apachehaus.com/cgi-bin/download.plx
下载完成后解压
找到 Apache24\conf 路径下的 httpd.conf 文件 修改 Define SRVROOT “自己的路径\Apache24” 绝对路径
使用 php 需要再 添加一段内容:
#加载PHP
LoadModule php_module "D:\Configuration_file\PHP\php8\php8apache2_4.dll"
#将PHP配置文件加载到Apache配置文件中,共同生效
PHPIniDir 'D:/Configuration_file/PHP/php8'
#配置Apache分配工作给PHP模块,把PHP代码交给PHP处理
#即.php后缀名的文件
AddType application/x-httpd-php .php
注意 :
PHP 8 版本
配置时经常报错 找不到结果
php_module
原因如下:
# PHP8
AddHandler application/x-httpd-php .php
AddType application/x-httpd-php .php
LoadModule php_module "F:\wamp\php8.0.1\php8apache2_4.dll"
PHPIniDir "F:\wamp\php8.0.1"
#php7.4
# AddHandler application/x-httpd-php .php
# LoadModule php7_module "F:\wamp\php7.4.13\php7apache2_4.dll"
# AddType Application/x-httpd-php .php
# PHPIniDir "F:\wamp\php7.4.13"
#php5.6.40
# AddHandler application/x-httpd-php .php
# LoadModule php5_module "F:\wamp\php5.6.40\php5apache2_4.dll"
# AddType Application/x-httpd-php .php
# PHPIniDir "F:\wamp\php5.6.40"
#php7.0.9
# AddHandler application/x-httpd-php .php
# LoadModule php7_module "F:\wamp\php7.0.9\php7apache2_4.dll"
# AddType Application/x-httpd-php .php
# PHPIniDir "F:\wamp\php7.0.9"
#php7.2.33
# AddHandler application/x-httpd-php .php
# LoadModule php7_module "F:\wamp\php7.2.33\php7apache2_4.dll"
# AddType Application/x-httpd-php .php
# PHPIniDir "F:\wamp\php7.2.33"
使用 CMD 打开路径: D:\Configuration_file\PHP\Apache24\bin 执行 httpd -t 测试配置文件是否合法
成功后显示:
安装 Apache 服务
使用 CMD 命令 :httpd -k install -n Apache2.4 -n 后面表示自定义访问名称
启动服务 :httpd -k start
暂停服务 :httpd -k stop
测试 服务 是否正常:http://localhost/
正常:
以上步骤都配置没有问题后
使用 :httpd -M 重新加载 PHP 模块
成功后 :
最后 测试 php
环境是否正常使用
hello.php
<?php
//测试
echo 'hello world';
?>
// 测试地址 : http://localhost/hello.php
以上便是我在使用 Python 混合编程时遇到的情况以及处理办法,结果都已成功测试运行,如果有什么异常可以交流学习一下;
如果在混合编程使用 C语言获取其他语言时,发现结果输出乱码时,注意PyCharm 的编码格式,是否与 其他语言相同。
最后 如果有 帮忙 麻烦大家来个一键三连 欢迎大家随时交流学习,共同进步