【发布时间】:2014-10-31 05:53:37
【问题描述】:
我有 2 个脚本。
1 - php web-scripts,它从用户那里收集信息并执行 python 脚本,并将所有收集到的数据作为参数发送
2 - python 脚本,它使用 sys.argv 从 php-script 获取参数并使用 MySQLdb 更新 MySQL
当我通过命令行运行 python 脚本时 - 它就像一个魅力。它做它应该做的任何事情。但是,当我尝试使用 PHP 脚本执行 python 脚本时,在我从 python 脚本中删除 import MySQLdb 之前什么都没有发生。
一旦我从我的 python 脚本中删除“import MySQLdb” - PHP 脚本就可以执行它并且它们都可以工作(更新 MySQL 除外)。
你知道并知道出了什么问题吗?
附: 我试图得到一个错误
在 python 文件中我使用这个:
import traceback
import sys
import MySQLdb
# Some classes and functions
if __name__ == '__main__':
try:
main()
except Exception, err:
print traceback.format_exc()
在我使用的 php 中:
$result = shell_exec("/usr/bin/python /FULL_PATH_TO/script.py $argument";
echo $result;
而且还是……什么都没有。网页只是重新加载而不提供任何信息
【问题讨论】:
-
"什么都没有发生" -- 你检查回溯了吗?
-
@mgilson 更新了关于您评论的主题
-
可能是环境变量 PYTHONPATH 被 web 服务器执行的时候不一样? PYTHONPATH 指示 python 查找库...
-
@Paul 可能是一个案例,谢谢。现在需要弄清楚我应该怎么做才能更改网络服务器的 PATH :(
-
你检查过 php (web) 错误日志吗? shell_exec() 可以通过网络服务器获得吗?它被 PHP 安全模式禁用。
标签: php python mysql-python