问题描述
我想在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 library的mysql.connector
。要从PyPI安装它,请寻找the mysql-connector-python
package。
这些库不是彼此的直接替代。根据您编写代码的方式,您可能需要进行一些重构。
请注意,在开发和生产中以相同的方式安装依赖项通常是一个好主意。也就是说,如果您在Heroku上使用requirements.txt
和pip
,请在本地执行相同的操作。将库添加到您的requirements.txt
中,然后使用pip install -r requirements.txt
安装它们。这有助于最大程度地减少部署时的意外情况。