如何从PHP编译Python


How to compile Python from PHP?

我正在进行一个加密项目,并已将Python中的PyCrypto模块用于所有加密算法。

当我将PHP与MongoDB连接时,在用户注册时,我需要用特定的公钥和私钥链接每个用户,生成RSA密钥的代码是用Python编写的,我使用PHP将所有用户信息存储在MongoDB中。

如何在不首先在shell中执行脚本的情况下调用Python脚本并在PHP中使用输出,因为这是一个耗时的过程?

PHP和Python都有交叉编译器吗?这样我就可以在同一个编译器上执行了?

您可以使用exec(它最终在shell中运行脚本)
如文档中所述,该方法的第一个参数将是您想要运行的命令,第二个参数是一个引用,它将保存输出

没有交叉编译器AFAIK。对于一个非玩具项目,我会非常谨慎地使用那些承诺可以同时使用PHP和Python的东西。:)

为了避免每次运行Python脚本时都创建一个进程,可以使用sockets实现服务器-客户端架构,以便在Python和PHP之间进行通信。在您的案例中,服务器是您的加密库,而客户端是查询服务器的PHP脚本。

  • Python套接字文档:https://docs.python.org/2/howto/sockets.html
  • PHP套接字文档:http://php.net/manual/en/book.sockets.php

这本质上意味着Python脚本是一个长时间运行的脚本(以避免一次又一次地创建它的成本)。