如何使用pyInstaller 完整打包所有需要的库?

新手上路,请多包涵

我已经使用 pyinstaller 创建了我的 python 应用程序的独立应用程序

pyinstaller --windowed app.py

它实际上在我的电脑上运行并按预期工作,但是当我在我朋友的电脑上尝试时,它没有工作。它运行但不知何故无法处理文本。

这是使用的库:

 import tkinter as Tk
import tkinter.ttk as ttk
import tkinter.scrolledtext as ScrollTxt
from tkinter import END,E,W,filedialog,messagebox
from nltk.tokenize import sent_tokenize, RegexpTokenizer, word_tokenize
import math
import fileinput
from textblob import TextBlob as tb
from nltk.tag import pos_tag, map_tag
from nltk.corpus import stopwords

如果您想查看结果文件: https ://www.dropbox.com/s/mfdnaaoik7w0r23/TextSummaryV73.rar?dl=0

有人知道出了什么问题或缺少什么吗?

我认为它是 nltk 或 textblob,任何人都可以帮助如何将这些文件添加到包中吗?

编辑: 我使用规范文件将 nltk 和 textblob 添加到 Python 应用程序的目录中。现在的问题是,如何让程序知道这两个导入已经在目录中了?

原文由 Mikhael Pramodana 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 639
2 个回答

您可以将 nltk_data 文件夹从 nltk 下载的位置复制到您的应用程序目录。在您需要库的脚本中,使用 Sandeep 的建议:

 basedir = os.path.abspath(os.path.dirname(__file__))
import nltk
nltk.data.path.append(basedir + 'nltk_data')

然后构建你的pyinstaller文件

pyinstaller -F --add-data "nltk_data;nltk_data" app.py

原文由 Pelonomi Moiloa 发布,翻译遵循 CC BY-SA 4.0 许可协议

我相信您正在寻找的命令是–onefile。这会将所有必需的包打包到可执行文件中。 本指南 应该对您有所帮助。

 pyinstaller --onefile --windowed app.py

如果您有脚本所需的任何外部文件,这会使过程变得更加困难,因为您需要更改对它们位置的引用。 这个答案这个 可以帮助解决这个问题

原文由 Mark Cuddihy 发布,翻译遵循 CC BY-SA 3.0 许可协议