首页 > 编程语言 >PHP调用Python无返回或提示No Module

PHP调用Python无返回或提示No Module

时间:2023-07-15 17:22:39浏览次数:32  
标签:调用 No Python cmd Module python -- words php

问题:自己通过命令行执行python正常,但通过php调用就没有反应。

解决方法:
1、首先检查一下php有没有执行权限,简单粗暴的:

sudo chmod 777 xxx.php

2、Python如果有中文返回,似乎需要额外操作。可以先去掉中文排除掉其他原因,也可以尝试以下操作:
在python文件头部加上

import codecs
sys.stdout = codecs.getwriter('utf-8')(sys.stdout.detach())

或者,php脚本中在调用python命令的地方加上:

// 设置字符集,重要!!!! 非常重要。
$set_charset = 'export LANG=en_US.UTF-8;';
$cmd = "python3  main.py gen  --model-path='checkpoints/tang_199.pth' --pickle-path='tang.npz' --start-words='".$start_words."' --prefix-words='".$prefix_words."' --use-gpu=False  --acrostic='True'";
//echo $cmd;
$poem = exec( $set_charset.$cmd, $output, $res );

3、如果不行,则将php调用语句的最后面加上2>&1,如

echo shell_exec("python3 xxx.py 2>&1");

这样,再去网页执行php时候,就会显示具体的错误原因。

4、如果是普通语法错误,修改即可;但如果提示No module,是因为你当前登录账户(非root)的环境,跟web的环境不一样,所以你通过ssh安装的库,在web下找不到。可以通过加sudo -H来解决,如:

sudo -H pip3 install pyDes

标签:调用,No,Python,cmd,Module,python,--,words,php
From: https://www.cnblogs.com/prefertea/p/17556542.html

相关文章

  • 【雕爷学编程】Arduino动手做(02)---光敏电阻模块3
    37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手尝试系列实验,不管成功(程序走通)与否,都会记录下来—小小的进步或是搞......
  • 【雕爷学编程】Arduino动手做(02)---光敏电阻模块2
    37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手尝试系列实验,不管成功(程序走通)与否,都会记录下来—小小的进步或是搞......
  • 【性能测试】性能监控-python编写(CPU | 内存 | 磁盘io)占比监控脚本
    一、主要通过Python脚本实现对linux环境(CPU|内存|磁盘io)监控脚本示例:importtimeimportsubprocess#获取CPU使用率defget_cpu_usage():#系统CPU占比=系统态占比+空闲态占比=3.2%+36.5%=39.7%cpu_usage=subprocess.check_output("top-bn1......
  • Python 20个魔法函数
    本文将为您详细介绍Python中的20个魔法函数,这些函数能够在代码中释放神奇的力量。让我们一起来了解这些特殊的函数,并提供一些在实际接口自动化工作中的示例代码。魔法函数(MagicMethods),也被称为特殊方法或双下划线方法,是Python中一些特殊命名的函数,它们以双下划线开头和结尾......
  • Python学习——Day 6
    流程控制语句break·break语句   ·用于结束循环结构,通常与分支结构if一起使用#输入密码,最多录入3次,如果正确就结束循环foriteminrange(3):pwd=input('请输入密码:')ifpwd=='8888':print('密码正确')breakelse:print('密码......
  • Anaconda-用conda创建python虚拟环境及移植到内网
    conda可以理解为一个工具,也是一个可执行命令,其核心功能是包管理和环境管理。包管理与pip的使用方法类似,环境管理则是允许用户方便滴安装不同版本的python环境并在不同环境之间快速地切换。conda的设计理念conda将几乎所有的工具、第三方包都当作package进行管理,甚至包括python......
  • 【雕爷学编程】Arduino动手做(06)---KY-038声音传感器模块4
    37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手尝试系列实验,不管成功(程序走通)与否,都会记录下来—小小的进步或是搞......
  • python aes
    实现PythonAES加密解密背景AES(AdvancedEncryptionStandard)是一种对称密钥加密算法,广泛应用于数据的加密和解密过程中。在Python中,我们可以使用cryptography模块来实现AES加密解密功能。整体流程下面是实现PythonAES加密解密的整体流程:步骤描述1.导入......
  • python __init__传参
    Python__init__传参在Python的类定义中,__init__是一个特殊的方法,它用于在创建类的实例时进行初始化操作。通过在__init__方法中传递参数,我们可以在创建实例时为对象提供初始值。本文将详细介绍Python中__init__方法的使用和传参方式,并提供一些示例代码帮助读者更好地理解。__ini......
  • python \x00\x00\ 转换
    Python字符串转换为\x00\x00\x00格式的实现方法1.简介在Python中,字符串可以使用不同的编码方式进行表示。其中,\x00\x00\x00是一种十六进制表示的编码方式,代表了字符串中的空字符。本文将介绍如何将普通的Python字符串转换为\x00\x00\x00格式。2.转换流程下表展示了将Pytho......