如何使用pyInstaller完全打包所有必需的库?

时间:2016-05-10 16:29:46

标签: python-3.x 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,任何人都可以帮助如何将这些文件添加到包中吗?

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

3 个答案:

答案 0 :(得分:1)

我相信你要找的命令是--onefile。这将所有必需的包打包到可执行文件中。 This guide可以帮助你。

pyinstaller --onefile --windowed app.py

如果您有脚本所需的任何外部文件,这会使该过程变得更加困难,因为您需要更改对其位置的引用。 This answerthis one可以为您提供帮助

答案 1 :(得分:1)

我遇到了同样的问题,我能够如图所示解决它:

  1. 将您正在使用的'nltk数据'内容复制到 nltk_data_folder

  2. 在python代码中写下这两行:

  3. {

    import nltk
    nltk.data.path.append(r'nltk_data_folder')
    

    }

    1. 'Application_folder'中放置 nltk_data_folder ,其中 .exe 文件存在 p>

    2. 您现在可以复制'Application_folder'(包含 nltk_data_folder .exe文件 和任何其他PC上的其他支持文件)并运行 .exe文件

    3. 希望这会有所帮助!!

答案 2 :(得分:0)

您可以将nltk_data文件夹(由nltk从中下载)复制到您的应用程序目录中。在需要库的脚本中,将上面的建议与以下内容一起使用:

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