php调用python失败怎么办-PHP问题

资源魔 33 0

php挪用python失败怎样办?

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);

而后就能够依据谬误信息去寻求处理方法。

普通正在终端经过饬令运转PHP文件是能够即刻看到谬误信息的,然而经过阅读器运转PHP文件就只能下面所述办法去输入谬误信息。因而成绩也就是正在饬令行下PHP能够胜利执行Python文件,而经过阅读器就不克不及胜利运转,这是由于两种形式所挪用的静态库纷歧致!

经过饬令行形式挪用的是零碎中的已有的静态库,而经过阅读器形式挪用的是Web效劳器中的静态库。(我装置的XAMPP,以是经过阅读器形式挪用的就是lampp/lib中的静态库)。

处理方法:

1.正在输入的谬误信息中找到犯错的静态库

2.经过locate饬令找到相干的静态库所正在的地位:locate libxxx.so

3.将web效劳器中的同名静态库删除了或重定名

4.将经过第2步正在零碎中找到的静态库链接到web效劳器的lib目次中

实例:

Python中应用hashlib模块时可能呈现两个谬误:

<span style="font-family:Arial, Helvetica, sans-serif;">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</span>
<span style="font-family:Arial, Helvetica, sans-serif;">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)</span>

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相干常识,请拜访PHP教程!

以上就是php挪用python失败怎样办的具体内容,更多请存眷资源魔其它相干文章!

标签: php php教程 php故障解决 php使用问题

抱歉,评论功能暂时关闭!