我的编程空间,编程开发者的网络收藏夹
学习永远不晚

PHP如何运行Python脚本

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

PHP如何运行Python脚本

这篇文章主要介绍PHP如何运行Python脚本,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

注:本次问题产生的环境是建议在windows环境下,利用IIS+PHP去调用Python脚本失败的前提下。如果你的环境与本次问题的环境不符。请自动规避。

在产品需求分析到一定阶段,各个部门之间需要一定的协调。然后我们做全栈开发的就需要把这些都笼统协调起来。也就出现了后台同时去调起不同模块、不同开发语言的需求。

首先后台使用的是IIS+PHP的环境,且运行在windows上。通过PHP去调用Python的程序。

先说问题:在Python、PHP都加入系统的环境变量(且在cmd的模式下能正常运行)的前提下,通过运行a.php去调起1.py

PHP代码(a.php)

$result = exec("py 1.py");var_dump($result);

Python代码(1.py)

print("123");fl=open('test3.txt', 'w')fl.write("5,5,5,1,2,3")fl.close()

两个目录文件在同一目录下。且IIS可执行权限给足(为了重现问题所在,就写了最简单的代码)然后就出现了运行报错。

然后我将PHP代码改进,查看exec函数执行的错误状态码

$result = exec("py 1.py", $array, $ret);var_dump($result);var_dump($array);var_dump($ret);

发现错误码为103(执行错误)

这一次我就将exec函数中的bash改成了标准输出(为了确定具体错误信息)

PS:在bash中0,1,2三个数字分代表STDIN_FILENO、STDOUT_FILENO、STDERR_FILENO,即标准输入(一般是键盘),标准输出(一般是显示屏,准确的说是用户终端控制台),标准错误(出错信息输出)。

$result = exec("py 1.py 2>error.txt", $array, $ret);var_dump($result);var_dump($array);var_dump($ret);

这一次运行以后,打开error.txt居然出现了:Can't find a default Python.这种错误(前提我是将python加入了环境变量且cmd状态下能直接运行py文件),感觉就遇到了不能言语的错误。在充分排查环境变量、可执行权限等错误以后。我下意识的将exec里面的执行语句改成了

"python 1.py 2>error.txt"

这一次给我的错误居然是【'python' 不是内部或外部命令,也不是可运行的程序或批处理文件。】我甚至一度怀疑这台电脑有了他自己的想法。就在翻遍所有资料后。我突然想起可能是由于PHP是运行在IIS的服务器上,然而IIS并不是一个所有用户权限(这一点即是IIS建站目录权限控制的优点,又是IIS建站的缺点)。结合之前error.txt文件报的错误。我就将代码做一下修改。

$res = exec("你python的安装绝对路径/python.exe 1.py 2>error.txt", $array, $ret);var_dump($result);var_dump($array);var_dump($ret);

然后将python这个文件下所有文件的用户拥有者增加一个IIS用户控制可执行权限。

这次PHP能找到了Python的可执行exe,成功将我们的代码执行了。

PS:IIS+Windows 不亏是一个黑洞。

以上是“PHP如何运行Python脚本”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注编程网行业资讯频道!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

PHP如何运行Python脚本

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

PHP如何运行Python脚本

这篇文章主要介绍PHP如何运行Python脚本,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!注:本次问题产生的环境是建议在windows环境下,利用IIS+PHP去调用Python脚本失败的前提下。如果你的环境与本次
2023-06-14

如何使python脚本运行在daemon

有一个很好的库可以完成这一功能,可惜因为文档少所以网上例子不太多库名:python-daemon可以通过Pip来安装最简单的使用方式import daemonwith daemon.DaemonContext(): print "yo
2023-01-31

如何运行javascript脚本

这期内容当中小编将会给大家带来有关如何运行javascript脚本,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。javascript脚本的运行方法:首先在文本输入js脚本,点击文件的另存为;然后选择文件保
2023-06-14

linux如何运行shell脚本

要运行一个Shell脚本,可以使用以下方法:1. 在终端中直接键入脚本的路径和名称,例如:```/path/to/script.sh```2. 给脚本文件添加执行权限,并使用./来执行脚本,例如:```chmod +x /path/to/s
2023-08-30

linux如何运行bash脚本

要在Linux上运行bash脚本,可以按照以下步骤进行操作:1. 创建一个新的文件,将其命名为脚本文件,以`.sh`作为文件扩展名。例如,可以使用以下命令创建一个名为`myscript.sh`的脚本文件:```touch myscript.
2023-09-22

如何运行python脚本更改Windows背景

这篇“如何运行python脚本更改Windows背景”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“如何运行python脚本更
2023-06-26

在cmd下运行Python脚本+如何使用

希望对于,如何在Windows下,写Python代码,进行Python开发,运行Python脚本的人,看了此文后,懂得了:什么是cmd下面去运行Python脚本;什么是Python的交互式的shell;什么是Python的IDE。看此文之前
2023-01-31

在Hadoop上运行Python脚本

之前已经配置好了Hadoop以及Yarn,可那只是第一步。下面还要在上面运行各种程序,这才是最重要的。Ubuntu安装时默认已经安装了Python, 可以通过Python –version 查询其版本。 因此我们可以直接运行python的
2023-01-31

pm2执行python脚本 后台运行

与执行nodejs一样简单、优雅pm2 start main.py -x --interpreter python
2023-01-31

python脚本如何执行

本篇内容主要讲解“python脚本如何执行”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“python脚本如何执行”吧!第一种:使用脚本式编程把下面的代码复制到W3Cschool.py文件中:pr
2023-06-27

linux如何运行sh脚本命令

在Linux中运行sh脚本命令有以下几种方法:1. 使用sh命令运行脚本:在终端中输入`sh 脚本文件名.sh`,即可运行sh脚本。例如`sh script.sh`。2. 使用bash命令运行脚本:在终端中输入`bash 脚本文件名.sh`
2023-09-17

开机自动运行python脚本

1、新建rc.localtouch /etc/rc.d/rc.localvim /etc/rc.d/rc.local#!/bin/bash#下面是需要执行的脚本2、赋予可执行权限chmod +x /etc/rc.d/rc.local3、编辑
2023-01-31

Python中怎么运行my.py脚本

今天小编给大家分享一下Python中怎么运行my.py脚本的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。在 python 中
2023-06-27

ubuntu如何配置apache运行cgi脚本

这篇“ubuntu如何配置apache运行cgi脚本”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“ubuntu如何配置apa
2023-07-04

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录