首页 > 解决方案 > Python 关于 PHP 导入的烦恼

问题描述


我正在从 php 调用一个 py 脚本,一切似乎都很好,直到我导入 cv2,然后麻烦就开始了。

情况:

  • 1# 我有一个文件夹 test/,里面有 test.php 和 test_script.py。

    测试.php:

    <?php
    
    $command = escapeshellcmd( 'python test_script.py' );
    $output = shell_exec($command);
    
    echo $output;
    

    test_script.py:

    import os
    import json
    import numpy as np
    import cv2
    print('pol')
    

  • 2# 如果我运行它,我在 test/test.php 中什么都看不到;相反,如果我评论“import cv2”,它会完美地将“pol”可视化为输出。
  • 3# php调用的path变量和cmd调用的一样(是的,windows..)
  • 4# 在 cmd 我可以很容易地调用:

    > python test_script.py
    

    它工作正常

  • 规格
    PHP:7.2.2
    Python:Anaconda3 上的 3.6.5

    那么,我怎样才能让它在 php 上同样工作呢?为什么即使在 cmd 中也可以正常工作?

    先感谢您


    更新 #1
    我的 sdout 返回:
    Traceback(最近一次调用最后一次):
    文件“predict_test.py”,第 10 行,在
    import cv2
    ImportError:DLL 加载失败:访问被拒绝。

    但我已经在 Anaconda3 文件夹上设置了用户和系统的完全控制权限。

    标签: phppythonpython-importshell-execcv2

    解决方案


    推荐阅读