相关文章推荐
叛逆的沙发  ·  Convert data ...·  6 天前    · 
沉稳的木瓜  ·  Python_PyCharm_Turtle- ...·  3 天前    · 
打篮球的杨桃  ·  The QuerySet value ...·  1 年前    · 
强健的吐司  ·  MySQL ...·  1 年前    · 
o u t p u t ) output
system()  直接返回输出结果,可以直接发给浏览器
passthru(command)  和system类似,还能返回二进制输出
shell_exec(command);  或者反撇号都只返回输出结果
使用方式:

/*使用这个exec执行liunx代码,
sudo是使用当前用户,
python是文件路径,
.py文件是执行文件位置,最好是绝对路径。如果.py有配置路径,那么就可以直接写文件名
$output可以打印出状态码
exec('sudo /root/.pyenv/shims/python /www/wwwroot/liuliang_ht_22/public/qucela.py  ',$output)
system('sudo /root/.pyenv/shims/python /www/wwwroot/liuliang_ht_22/public/qucela.py  ',$output)
如果使用以上方法没用数据请用以下方法看一下报错信息
2>&1 是打印出执行时的详细报错信息,因为exec和system报错一般会返回一个大于0的值,1,2,126,127,
exec('sudo /root/.pyenv/shims/python /www/wwwroot/liuliang_ht_22/public/qucela.py  2>&1',$output)
system('sudo /root/.pyenv/shims/python /www/wwwroot/liuliang_ht_22/public/qucela.py  2>&1',$output)
一般的报错信息有sudo的用户没有免密权限,这样就要在liunx服务器中配置用户密码
前置是知道你现在是那个用户
使用一下代码打印一下
$username=system('whoami');
var_dump($username);
得到服务器使用用户,一般浏览器的使用用户都是www,然后就是在服务器中为这位用户配置免密
1    打开sudoers
vi /etc/sudoers
2    添加免密码
www ALL = NOPASSWD: ALL
然后重启服务器,让配置生效
如果你使用以上代码执行,如果执行过程过长还是会有502报错,而且会卡死程序
&是跳过执行,直接进入进程执行
pclose(popen('sudo /root/.pyenv/shims/python /www/wwwroot/liuliang_ht_22/public/qucela.py  &','r'));

这个就是执行py文件会出现的问题和最简单的解决方案了
也是我个人碰到的问题和解决的思路

在php中调用python文件可以直接使用自带函数: exec(commond,output)  接收一个命令,把得到的结果返给output)  接收一个命令,把得到的结果返给output)  接收一个命令,把得到的结果返给output system()  直接返回输出结果,可以直接发给浏览器 passthru(command)  和system类似,还能返回二进制输出 shell_exec(command);  或者反撇号都只返回输出结果使用方式:/*使用这个exec执行liunx代码,su
前言:本文针对windows php环境,linux系统不在讨论范畴。       出于安全的原因,服务器是不允许php或者其他语言执行exec命令的,当你有特殊需要php在服务器执行exec命令时,你需要设置两个地方,不然就无法执行成功。       1、修改php.ini       找到php配置文件php.ini,如果是用星外php自动安装程序配置php环境,这个文件就在C:\WINDOWS\这个目录里。       在文件里搜索“disable_functions”,找到它后把“exec”、“shell_exec”去掉,然后保存文件。       2、修改cmd.exe文件属性 string exec( string $command [, array &$output [, int &$return_var]]) exec()执行command参数所指定的命令。 command: 要执行的命令 output: 如果提供了output参数,那么会用命令执行的输出流(stdout)填充此数组,每行输出填充数组的...
在毕设需要用到PHP传递参数调用Python脚本并获取后者返回的结果,经过查阅资料该问题得以解决。 PHP借助shell_exec通过类似于python sum.py $aa $bb的形式以执行系统命令的方式传递参数给Python文件Python则通过sys.argv(需引入sys模块)来接收命令含的参数(需要注意的是:此时传入的参数都会被默认为str类型,需要在函数内部进行解析和转换)并将处理结果通过print函数输出; 2、在PHP调用exec函数: exec("D:/python3/python../python_code/deal_with_data.py$data1 $data2",$output,$ret); D:/python3/python是anaconda下python.exe的绝对路径 ../p...
1 php 端在使用 exec 调用 python外部程序时,必须使用 $set_charset = ‘export LANG=en_US.UTF-8;’ 加在调用的命令前面。否则报错 或 返回结果与终端执行python返回不一致 示例如下:(1) Linux版本 (2) Window版本 不能使用 $set_charset = ‘export LANG=en_US.UTF-8;’ 加在调用的命令前面. php执行命令 python接收参数 ·· 返回数据...
任务:Web项目开发 环境配置:经典的LAMP环境(Linux+Apache2+MySQL+PHP),同时配置了cuda10.0环境 问题:有一个python实现的GPU程序,终端下调用时完全可以正常运行,但在PHP文件使用exec函数调用python程序时,却会报错: ImportError: libcublas.so.10.0: cannot open shared object file...
转载并整合自网络。 通过网站使用php shell_exec(python3 .py) 的时候,无法调用pandas 库,会提示,no module name pandas。但是调用sys, optget等库却没有问题,这是因为系统路径的原因。 (1)使用sys.path,查看命令行里面运行的python 和网页运行的python它们的系统路径有什么不同,将不同的部分添加到网页运行的系...
可以使用exec()函数或者shell_exec()函数来调用Python文件。例如,使用exec()函数可以这样写: exec("python /path/to/python/file.py"); 其,/path/to/python/file.py是Python文件的路径。