我试图在 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 command
exec($command .$masterpath, $output, $return_var);
?>
</body>
</html>
临时文件
import os
import sys
#path passed into python from php
file_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 HERE
import pandas as pd
with 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。
慕哥6287543
相关分类