Python Pandas-从PHP执行时未导入模块

时间:2020-04-12 13:01:39

标签: python php pandas

我有两个php脚本。两者都执行python3文件,并且都通过sendgrid api发送电子邮件,并设计为将id的电子邮件发送到mysql数据库表中。

在其中一个文件中,我通过php mysqli_query本身将电子邮件ID写入mysql。除此之外,我还发送邮件。这有效。该文件的最初几行如下所示:

import argparse
import os
import sendgrid as sendgrid
from sendgrid import SendGridAPIClient
from sendgrid.helpers.mail import Mail

在第二个文件中,我想进行一些数据重新对齐,因此,在写入数据库之前,我使用了pandasMySQLdb来操纵数据。该文件的最初几行如下所示:

import os
import argparse
#import MySQLdb
#import pandas as pd
import sendgrid as sendgrid
from sendgrid import SendGridAPIClient
from sendgrid.helpers.mail import Mail


ap = argparse.ArgumentParser()
ap.add_argument("-f","--inputFile",required=True,help="name of the annotations file")
ap.add_argument("-c","--clientid",required=True,help="name of the operator")

在此脚本中,我得到ModuleNotFoundError: No module named 'MySQLdb'pandas也是如此。但是,如果我禁用了这两种导入,其余的都可以正常工作。

我已经使用以下命令安装了两个库:

sudo pip3 install pandas
sudo pip3 install mysql-client-dev (not sure about this path, but it works properly)

当我使用sudo pip3 listpip3 list列出软件包时,我可以看到包括sendgridpandasmysqlclient在内的所有软件包。当我从python3控制台运行时,可以轻松导入所有3个软件包。

路径中的所有文件均归www-data:www-data所有,并且所有文件均具有777权限。仍然每当我使用import pandas as pd运行脚本时,都会出现模块未找到错误。

1 个答案:

答案 0 :(得分:0)

通过全局安装python软件包解决了此问题。要在全局安装python包(例如pandas),请使用

sudo -H pip3 install pandas

安装后,我所有的程序都立即开始运行。我的印象是sudo pip3 install pandas将在根级别安装,因此可以在全球范围内使用,并非如此。

相关问题