找不到'mysql'模块。

5

我已经编写了一个Python脚本来将数据存储在MySQL中。在PyCharm中可以正常工作,但是当转换为exe文件后无法正常工作。

这是从命令行输出的回溯信息:

Traceback (most recent call last):
  File "myscript.py", line 1, in <module>
    import mysql.connector
ModuleNotFoundError: No module named 'mysql'
[8428] Failed to execute script 'myscript' due to unhandled exception!

创建 exe 的命令:
pyinstaller --onefile --console CoinVolumes.py

我也尝试了 auto-py-to-exe 但是遇到了相同的错误。Mysql已经安装。


我以前曾经通过 --hidden-import 在 pyinstaller 中添加模块,但那通常是因为我在使用代码中没有直接导入的东西。我敢打赌问题与 pyinstaller 的搜索路径有关。尽管 mysql 存在,但它并没有被找到。 - Ian McLaird
3个回答

5

使用此命令:

pip install mysql-connector-python

之后进行验证:

$ python
Python 2.7.11 (default, Apr 26 2016, 13:18:56)
[GCC 4.1.2 20080704 (Red Hat 4.1.2-54)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import mysql.connector
>>>

已安装: Python 3.10.0 (tags/v3.10.0:b494f59, Oct 4 2021, 19:00:18) [MSC v.1929 64 bit (AMD64)] on win32 键入“help”、“copyright”、“credits”或“license”获取更多信息。 - AVy
导入?@ArūnasVyšniauskas - Tal Folkman
Python 3.10.0 (tags/v3.10.0:b494f59, Oct 4 2021, 19:00:18) [MSC v.1929 64 bit (AMD64)] on win32 输入 "help"、"copyright"、"credits" 或 "license" 获取更多信息。
import mysql.connector
- AVy
所以它应该在@ArūnasVyšniauskas的工作。 - Tal Folkman
C:\Users\david>python Python 3.11.1 (tags/v3.11.1:a7a450f, Dec 6 2022, 19:58:39) [MSC v.1934 64 bit (AMD64)] on win32 输入 "help"、"copyright"、"credits" 或 "license" 以获取更多信息。
import mysql.connector
- user10186832

0
在Python 3.6.9中,我可以使用Pip 3并执行以下操作:
pip3 install mysql
pip3 install mysql-connector-python

1
嘿,不,我正在使用Python 3.10.0。 - AVy
抱歉,我看到其他人的评论说是2.7.11版本。我使用的是Python 3.6.9版本,并尝试了以下命令:pip3 install mysql。我还看到了pip3 install mysql-connector-python。 - Bart Mensfort
是的,我已经安装了它们两个,但还是一样的问题。 - AVy
所以它们已经安装了,但是Python找不到这些文件。在这种情况下,计算出文件的绝对路径并首先执行以下操作:import sys,sys.path.append('/path/to/the/mysql-library'),import mysql...或者可能是1个目录更高。 - Bart Mensfort

0

你需要自己运行mysql服务器。Pyinstaller正常工作,问题在于mysql服务器不是Python的一部分,因此您需要手动启动服务器。另一种选择是使用sqlite,它不需要服务器。它内置于标准Python中,无需安装任何东西。


服务器已在我的电脑上开启,但我仍然会收到相同的错误。 - AVy
那么问题可能出现在您环境中安装的软件包上,正如其他答案中所提到的。也许重新安装mysql和mysql-connector-python,然后再试一次。在执行pyinstaller之前,还要确保您处于正确的环境中。 - Elias Martins Guerra Prado
它可以在PyCharm上运行,因此我猜Mysql数据库是从https://dev.mysql.com/(或MariaDB)安装的。SqLite仅适合小型数据库,或者在保存之前在RAM中使用。它会变得非常缓慢,因为每次更改都需要重新将整个数据库写入磁盘。 - Bart Mensfort

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接