【问题标题】:PyInstaller: FileNotFoundError when trying to run the distribution filePyInstaller:尝试运行分发文件时出现 FileNotFoundError
【发布时间】:2025-12-08 09:30:01
【问题描述】:

我正在帮助一个需要在 csvs 中转换一些数据的朋友,所以我制作了一个名为“csv_converter.py”的小 Python 程序——它需要一个 csv 输入文件和 csv 输出文件,一切都很好。

我希望能够给他们一个可以在他们的机器上运行的文件(不一定需要 python 和 pandas),所以我正在尝试 PyInstaller。 在包含我的 python 程序的目录中,我运行:pyinstaller csv_converter.py

根据docs,它将创建一个“dist”文件夹,“您可以在其中找到您分发给用户的捆绑应用程序”。听起来要运行的关键文件将是:dist/csv_converter/csv_converter(澄清来源:here),然后我可以发送整个 csv_converter 文件夹,或者如果我使用 - 运行 Pyinstaller 命令,则只发送 csv_converter 文件-onefile 参数。

运行 PyInstaller 后,我看到创建了这些目录,但是当我导航到 dist/csv_converter/ 并尝试运行那个重要的 csv_converter 文件时(在尝试发送任何内容之前),它给出了以下错误:

Dianes-MacBook-Pro:csv_converter dkaplan$ ./csv_converter -h
Traceback (most recent call last):
  File "site-packages/PyInstaller/loader/rthooks/pyi_rth__tkinter.py", line 30, in <module>
FileNotFoundError: Tcl data directory "/Users/dkaplan/PycharmProjects/chris_csv_converter/src/dist/csv_converter/tcl" not found.
[36637] Failed to execute script pyi_rth__tkinter

如此接近,但如此遥远! 有其他人遇到过这个问题或知道解决方法吗?

【问题讨论】:

    标签: pyinstaller


    【解决方案1】:

    我收到了 PyInstaller 好心人的回复,这是他们在 tinter 中看到的常见问题。我不确定它是从哪里拉进来的,但解决方法是用这个参数排除它:--exclude-module=tkinter

    我选择使用 --onefile 参数(速度较慢,但​​意味着我只能发送一个文件),所以完整的命令是:pyinstaller --onefile --exclude-module=tkinter csv_converter.py

    然后:

    • 我可以转到 dist 文件夹并使用以下命令进行测试运行:./csv_converter -h
    • 然后我将该 csv_converter 文件发送给我的朋友,他将能够以相同的方式运行它(无需 python)

    【讨论】:

      最近更新 更多