最新公告
  • 欢迎您光临网站无忧模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • php运行python脚本失败怎么解决

    正文概述    2020-02-04   264

    php运行python脚本失败怎么解决

    假设有文件:php_test.php  python_test.py

    在php文件中运行Python:

    exec("python python_test.py", $array, $ret);

    如果运行Python出错并不能保存在数组array中,因此应该把标准错误重定向到文件中,以上代码改写如下:

    exec("python python_test.py 2>error.txt", $array, $ret);

    在bash中0,1,2三个数字分代表STDIN_FILENO、STDOUT_FILENO、STDERR_FILENO,即标准输入(一般是键盘),标准输出(一般是显示屏,准确的说是用户终端控制台),标准错误(出错信息输出)。也可以通过以下方式将标准错误重定向到标准输出保存到$array中:

    exec("python python_test.py 2>error.txt 2>&1", $array, $ret);

    然后就可以根据错误信息去寻求解决办法。

    相关推荐:《Python教程》

    一般在终端通过命令运行PHP文件是可以马上看到错误信息的,但是通过浏览器运行PHP文件就只能上面所述方法去输出错误信息。因此问题也就是在命令行下PHP可以成功执行Python文件,而通过浏览器就不能成功运行,这是因为两种方式所调用的动态库不一致!通过命令行方式调用的是系统中的已有的动态库,而通过浏览器方式调用的是Web服务器中的动态库。(我安装的XAMPP,所以通过浏览器方式调用的就是lampp/lib中的动态库)。

    解决办法:

    1、在输出的错误信息中找到出错的动态库。

    2、通过locate命令找到相关的动态库所在的位置:locate libxxx.so。

    3、将web服务器中的同名动态库删除或重命名。

    4、将通过第2步在系统中找到的动态库链接到web服务器的lib目录中。

    实例:

    Python中使用hashlib模块时可能出现两个错误:

    relocation error: python: symbol OpenSSL_add_all_digests, version OPENSSL_1.0.0 not defined in file 
    libcrypto.so.1.0.0
    with link time reference

    python: /opt/lampp/lib/libcrypto.so.1.0.0: version `OPENSSL_1.0.2' not found (required by /opt/lampp/lib/libssl.so.1.0.0)

    1.找出系统中包含libcrypto.so.1.0.0的所有路径:locate libcryto.so.1.1

    /home/ubuntu/.cache/vmware/drag_and_drop/52091a33-81b7-cc30-d88c-574c47558e32/ndk/libimobiledevice-android-master/
    openssl/libcrypto.so.1.0.0
    /home/ubuntu/.cache/vmware/drag_and_drop/52091a33-81b7-cc30-d88c-574c47558e32/ndk/libimobiledevice-android-master/
    out/fsroot/lib/libcrypto.so.1.0.0
    /lib/x86_64-linux-gnu/libcrypto.so.1.0.0
    /opt/lampp/lib/libcrypto.so.1.0.0

    2.将web服务器中的同名动态库重命名:sudo mv /opt/lampp/lib/libcryto.so.1.1 /opt/lampp/lib/libcryto.so.1.1.bak

    3.将系统中libcryto.so.1.1链接到web服务器的lib目录中:sudo ln -s  /lib/x86_64-linux-gnu/libcrypto.so.1.0.0  /opt/lampp/lib/libcryto.so.1.1

    libssl.so.1.0.0解决步骤同上。


    下载网 » php运行python脚本失败怎么解决

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元