为了账号安全,请及时绑定邮箱和手机立即绑定

在受导入熊猫影响的 Windows 10 上将变量从 PHP 传递到 Python

在受导入熊猫影响的 Windows 10 上将变量从 PHP 传递到 Python

慕桂英3389331 2021-11-16 10:40:17
我试图在 Windows 上将一个变量从 PHP 传递到 Python,但是“import pandas”这一行导致了一个问题。我下面的所有代码都是为了简单起见,我试图创建的实际过程的骨架。第一段代码是我的Index,第二段是Index.php调用的PHP代码,最后一段是Python。索引.php<!DOCTYPE html><html><head><b>Enter a folder path </b> </head><body><form action="BlastParse.php" method="post">    Path: <input type ="text" name="path"><br>    <input type="submit"></form></body></html>BlastParse.php<html><body><?php #getting path passed from index.php$masterpath = $_POST["path"];echo 'The path requested to be passed is: ' . $masterpath . '<br>';#my directories $python = 'C:/Users/Garrett/Anaconda3/python.exe';$pyscript = 'C:/Users/Garrett/Documents/Python/temp.py';$pyscriptPrimed = $pyscript . ' ';#creating the command$command ="$python $pyscriptPrimed";#executing the command to call temp.py; adding passed path to commandexec($command .$masterpath, $output, $return_var); ?></body></html>临时文件import osimport sys#path passed into python from phpfile_path = sys.argv[1]#file_path = 'Write this string to file'with open("C:/Users/Garrett/Documents/Python/copy.txt", 'w') as file:        file.write(file_path)#PROBLEM HEREimport pandas as pdwith open("C:/Users/Garrett/Documents/Python/copy2.txt", 'w') as file:        file.write(file_path)我正在使用写入 copy.txt 和 copy2.txt 进行调试,因为终端上没有生成任何内容。当我注释掉 import pandas 行时,会创建并正确写入 copy2.txt 文件。如果没有,则不会创建 copy2.txt 文件并且 $return_var 变量在 PHP 中返回 1(我不确定错误代码代表什么)。我在 Windows 10 上运行 Python 3.7,并通过 Anaconda 使用 VS Code。
查看完整描述

1 回答

?
慕哥6287543

TA贡献1831条经验 获得超10个赞

这很可能是因为您尝试运行的地方没有安装 pandas。这可能是因为您在调用 python 脚本之前没有激活 anaconda 环境。


我还没有测试下面的代码,但它应该指向正确的方向:


$command ="source activate environment-name && $python $pyscriptPrimed && source deactivate";'

为了帮助调试这个,我尝试的第一件事是将 import 语句包装在 try catch 中,然后打印:


try:

    import pandas as pd

except Exception as e:

    print(str(e))

如果无法打印到控制台,请尝试将其写入文件:


try:

    import pandas as pd

except Exception as e:

    with open("C:/Users/Garrett/Documents/Python/error.txt", 'w') as file:

        file.write(str(e))

正如您在脚本中的问题错误代码 1 中的评论的旁白是一般错误的 Catchall。退出状态为 0 表示成功


查看完整回答
反对 回复 2021-11-16
  • 1 回答
  • 0 关注
  • 145 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信