Heroku Python没有名为Mysql

问题描述

我想在Python机器人中使用MySQL查询并将其部署到Heroku。但这给了我这个错误

Traceback (most recent call last):  
File "bot.py",line 2,in <module>  
import MysqL.connector  
ModuleNotFoundError: No module named 'MysqL'

我的需求文件包含:

pyodbc==4.0.22   
MysqL-python

部署进行得很好,但是在运行代码显示错误

这是导入:

import MysqL.connector

解决方法

有多个用于Python(和大多数其他语言)的MySQL库。

MySQL-Python是一个古老的传统库:

这是MySQLdb的旧版(1.x)版本。虽然仍在维护中,但不会有很多新功能开发。

您可能想使用其他库,但是如果您真的想使用该库,请should be importing MySQLdb,not mysql.connector

您当前正在导入this librarymysql.connector。要从PyPI安装它,请寻找the mysql-connector-python package

这些库不是彼此的直接替代。根据您编写代码的方式,您可能需要进行一些重构。

请注意,在开发和生产中以相同的方式安装依赖项通常是一个好主意。也就是说,如果您在Heroku上使用requirements.txtpip,请在本地执行相同的操作。将库添加到您的requirements.txt中,然后使用pip install -r requirements.txt安装它们。这有助于最大程度地减少部署时的意外情况。