【问题标题】:Permissions issues when using python through PHP通过 PHP 使用 python 时的权限问题
【发布时间】:2012-05-01 08:10:12
【问题描述】:

我需要让我的 Python 程序打开一个文件,使用其中的一些数据,然后输出一个不同的文件。我有几个问题,并希望是否有人可以明确地告诉我它们是否基于权限,如果是,如何解决它们。我的 Python 程序通过终端运行。

以下是我发现的一些不起作用的地方:

import matplotlib.pyplot
infile = open('/correct_pathway/textfile1.txt','r')
outfile = open('/correct_pathway/textfile2.txt','w')

它在所有这些方面都有问题。我不知道导入模块时可能存在权限问题,但确实存在。此外,它试图打开的文件是全局可读/可写的。

编辑:抱歉,这无意中含糊不清,并且代码中有一个实际上并不存在的错字。网页上写的PHP代码如下(如果我调用一个更简单的python程序就可以了,所以我可以想到这里没有问题):

<?php  $command= '/usr/bin/python /correct_pathway/program.py';
$temp = exec($command, $output);
print_r($temp); ?>

该代码应该打开 infile,从中读取一个数字,然后将该数字写入 outfile 并打印出一个不同的数字。打印的号码应显示在网页上。这一切都可以通过终端正常工作,而不是在网页上。

提前致谢!

【问题讨论】:

  • 你正在通过 php 运行它(如在 exec 中?)
  • 这里到底是怎么涉及php的?这段代码应该可以工作吗?因为它显然使用了未绑定的变量!
  • 我怀疑是拼写错误,但您在定义 $command 的 PHP 行末尾缺少引号和分号。
  • 抱歉,修正了拼写错误,这在其他人看来是权限问题吗?我无法直接访问 python 模块来自己更改它们,但如果这是问题,我可以告诉技术人员为我做这件事。谢谢!
  • 是的,可能是权限问题:PHP 进程是否可以运行 Python 程序? PHP 进程是否有权写入 Python 程序的输出文件?请注意,其中一些可能会受到 Web 服务器软件和 PHP 的权限的影响,而不仅仅是文件权限。

标签: php python permissions


【解决方案1】:

要定义文件应该如何打开,即读取或写入,语法是用引号将 r 或 w 括起来。所以你上面的代码应该如下所示。

import matplotlib.pyplot
infile = open('/correct_pathway/textfile1.txt','r')
outfile = open('/correct_pathway/textfile2.txt','w')

看看您是否可以访问添加了引号的文件。

【讨论】:

    猜你喜欢
    • 2016-08-25
    • 2014-04-20
    • 2013-09-10
    • 2020-01-10
    • 2010-12-16
    • 2018-09-17
    • 2018-06-09
    • 2019-08-28
    • 1970-01-01
    相关资源
    最近更新 更多