首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从php调用python脚本时,open(filename)不起作用

从php调用python脚本时,open(filename)不起作用
EN

Stack Overflow用户
提问于 2019-02-26 11:05:00
回答 1查看 118关注 0票数 0

我的XAMPP-VM服务器中有一个php文件,如下所示:

代码语言:javascript
复制
<?php

$message = exec('python testPython.py');
echo($message);

 ?>

testPython.py文件如下所示:

代码语言:javascript
复制
f = open('data.txt', 'w+')
f.write('test')
print('hello')
f.close()

当我运行php文件,比如localhost/testPHP.php时,testPython.py文件停留在第一行,并且不能继续运行。当我注释掉第一行、第二行和最后一行代码时,程序运行正常,并打印出“hello”。有趣的是,当我像这样的python testPython.py从终端运行testPython.py文件时,它可以工作。它打开测试并写下“data.txt”。有人知道我该怎么解决这个问题吗?

注意:我知道我可以很容易地在php中做同样的事情,根本不需要执行python文件,但这篇文章只是展示了我的问题。我需要在python文件中打开一个文件,我已经在其中投入了大量工作。

EN

回答 1

Stack Overflow用户

发布于 2019-02-26 11:13:14

首先,您可以创建一个名为runpy的文件,并将其放入其中

代码语言:javascript
复制
python testPython.py

然后在你的php中运行

代码语言:javascript
复制
exec('bash runpy');

其次,确保文件夹设置为777,因为当您使用exec运行cmd时,您以apache用户www-data身份运行它,而在终端中作为root/admin运行,这就是为什么它在那里工作,而不是在php上,所以只需确保将权限设置为777

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54877841

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档