首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python pandas -从php执行时未导入模块

问Python pandas -从php执行时未导入模块
EN

Stack Overflow用户
提问于 2020-04-12 21:01:40
回答 1查看 107关注 0票数 0

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

在其中一个文件中,我通过php mysqli_query本身将电子邮件In写入mysql。除此之外,我也在发送邮件。这是可行的。该文件的开头几行如下所示:

代码语言:javascript
复制
import argparse
import os
import sendgrid as sendgrid
from sendgrid import SendGridAPIClient
from sendgrid.helpers.mail import Mail

在第二个文件中,我想进行一些数据调整,因此,在写入数据库之前,我使用了pandas和MySQLdb来操作数据。该文件的开头几行如下所示:

代码语言:javascript
复制
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")

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

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

代码语言:javascript
复制
sudo pip3 install pandas
sudo pip3 install mysql-client-dev (not sure about this path, but it works properly)

当我使用sudo pip3 list和pip3 list列出包时,我可以看到所有包,包括sendgrid、pandas和mysqlclient。当我从python3控制台运行时,我可以毫不费力地导入所有3个包。

路径中的所有文件都归www-data:www-data所有,并且所有文件都拥有777权限。尽管如此,每当我使用import pandas as pd运行脚本时,我都会得到模块未找到错误。

EN

回答 1

Stack Overflow用户

发布于 2020-04-13 22:31:42

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

代码语言:javascript
复制
sudo -H pip3 install pandas

当我安装的时候,我所有的程序立即开始工作。我的印象是sudo pip3 install pandas将安装在根级别,因此可以在全球范围内使用,但事实并非如此。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61171894

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档