Pyinstaller:无法执行脚本单元

问题描述

我正在尝试创建一个聊天机器人,并使用Pyinstaller将其转换为可执行文件。这是我的代码

from chatterbot.trainers import chatterbotCorpusTrainer
import tkinter as tk
import os.path
import webbrowser
import tkinter.ttk as ttk
import tkinter.scrolledtext as ScrolledText
import time


def helping_button():
    webbrowser.open("https://www.internetking.ga/2020/06/sociality-gets-update-sociality-30.html")


class TkinterGUIExample(tk.Tk):

    def __init__(self,*args,**kwargs):
        """
        Create & set window variables.
        """
        tk.Tk.__init__(self,**kwargs)

        if os.path.isfile("database.sqlite3"):
            self.chatbot = chatbot(
                "Cyto Bot",storage_adapter="chatterbot.storage.sqlStorageAdapter",logic_adapters=[
                    {
                        'import_path': 'chatterbot.pyinstallerlogic.BestMatch'
                    },{
                        'import_path': 'chatterbot.logic.MathematicalEvaluation'
                    }
                ],database_uri="sqlite:///database.sqlite3"
            )
        else:
            self.chatbot = chatbot(
                "Cyto Bot",logic_adapters=[
                    {
                        'import_path': 'chatterbot.logic.BestMatch'
                    },database_uri="sqlite:///database.sqlite3"
            )
            trainer = chatterbotCorpusTrainer(self.chatbot)
            trainer.train('chatterbot.corpus.english')

        self.title("Sociality 3.0 - CytoBot")
        self.wm_iconbitmap('favicon.ico')

        self.resizable(0,0)

        self.initialize()

    def initialize(self):
        """
        Set window layout.
        """
        self.grid()

        self.style = ttk.Style()
        self.style.configure("Blue.TLabel",foreground="deepskyblue")
        self.style.configure("Red.TButton",font=("arial",15,"bold"),foreground="red")
        self.style.configure("Green.TButton",10,foreground="green")
        self.style.configure("Top.TLabel",20,foreground="steelblue")

        self.toptitle = ttk.Label(self,anchor=tk.E,text="Sociality",style="Top.TLabel")
        self.toptitle.grid(column=0,row=0,sticky='nesw',padx=3,pady=3)

        self.respond = ttk.Button(self,text='Get Response',command=self.get_response,style="Red.TButton")
        self.respond.grid(column=1,row=1,pady=3)

        self.usr_input = ttk.Entry(self,state='normal')
        self.usr_input.grid(column=0,pady=3)

        self.conversation = ScrolledText.ScrolledText(self,state='disabled')
        self.conversation.grid(column=0,row=2,columnspan=2,pady=3)

        self.credits = ttk.Label(self,text="Created by Benjamin Demetz",style="Blue.TLabel")
        self.credits.grid(column=0,row=3,pady=3)

        self.help_button = ttk.Button(self,text='Click here for help',command=helping_button,style="Green.TButton")
        self.help_button.grid(column=1,pady=3)

    def get_response(self):
        """
        Get a response from the chatbot and display it.
        """
        user_input = self.usr_input.get()
        self.usr_input.delete(0,tk.END)

        response = self.chatbot.get_response(user_input)

        self.conversation['state'] = 'normal'
        self.conversation.insert(
            tk.END,"Human: " + user_input + "\n" + "CytoBot: " + str(response.text) + "\n"
        )
        self.conversation['state'] = 'disabled'

        time.sleep(0.5)


gui_example = TkinterGUIExample()
gui_example.mainloop()

我正在使用Python 3.6.5和Pycharm。我在python解释器中安装了以下代码chatterbotchatterbot-corpus,spacy和pyinstaller。

我在pycharm内部使用了它的终端命令:

pyinstaller -y -F -w -i“ D:\ Coding \ PyProjects \ Sociality \ Sociality3 \ favicon.ico”“ D:\ Coding \ PyProjects \ Sociality \ Sociality3 \ cyto.py”

这是我得到的输出

78 INFO: PyInstaller: 4.1.dev0+dc9680d526
78 INFO: Python: 3.6.5
78 INFO: Platform: Windows-10-10.0.19041-SP0
79 INFO: wrote D:\Coding\PyProjects\Sociality\Sociality3\cyto.spec
82 INFO: UPX is not available.
84 INFO: Extending PYTHONPATH with paths
['D:\\Coding\\PyProjects\\Sociality\\Sociality3','D:\\Coding\\PyProjects\\Sociality\\Sociality3']
182 INFO: checking Analysis
183 INFO: Building Analysis because Analysis-00.toc is non existent
183 INFO: Initializing module dependency graph...
186 INFO: Caching module graph hooks...
207 INFO: Analyzing base_library.zip ...
3938 INFO: Caching module dependency graph...
4043 INFO: running Analysis Analysis-00.toc
4058 INFO: Adding Microsoft.Windows.Common-Controls to dependent assemblies of final executable
  required by C:\Users\benbe\AppData\Local\Programs\Python\python36\python.exe
4112 INFO: Analyzing D:\Coding\PyProjects\Sociality\Sociality3\cyto.py
4938 INFO: Processing pre-find module path hook distutils from 'c:\\users\\benbe\\appdata\\local\\programs\\python\\python36\\lib\\site-packages\\pyinstaller-4.1.dev0+d
c9680d526-py3.6.egg\\PyInstaller\\hooks\\pre_find_module_path\\hook-distutils.py'.
4940 INFO: distutils: retargeting to non-venv dir 'C:\\Users\\benbe\\AppData\\Local\\Programs\\Python\\python36\\lib'
6276 INFO: Processing pre-safe import module hook setuptools.extern.six.moves from 'c:\\users\\benbe\\appdata\\local\\programs\\python\\python36\\lib\\site-packages\\py
installer-4.1.dev0+dc9680d526-py3.6.egg\\PyInstaller\\hooks\\pre_safe_import_module\\hook-setuptools.extern.six.moves.py'.
6718 INFO: Processing pre-find module path hook site from 'c:\\users\\benbe\\appdata\\local\\programs\\python\\python36\\lib\\site-packages\\pyinstaller-4.1.dev0+dc9680
d526-py3.6.egg\\PyInstaller\\hooks\\pre_find_module_path\\hook-site.py'.
6719 INFO: site: retargeting to fake-dir 'c:\\users\\benbe\\appdata\\local\\programs\\python\\python36\\lib\\site-packages\\pyinstaller-4.1.dev0+dc9680d526-py3.6.egg\\P
yInstaller\\fake-modules'
11351 INFO: Processing pre-safe import module hook urllib3.packages.six.moves from 'c:\\users\\benbe\\appdata\\local\\programs\\python\\python36\\lib\\site-packages\\py
installer-4.1.dev0+dc9680d526-py3.6.egg\\PyInstaller\\hooks\\pre_safe_import_module\\hook-urllib3.packages.six.moves.py'.
13485 INFO: Processing pre-safe import module hook six.moves from 'c:\\users\\benbe\\appdata\\local\\programs\\python\\python36\\lib\\site-packages\\pyinstaller-4.1.dev
0+dc9680d526-py3.6.egg\\PyInstaller\\hooks\\pre_safe_import_module\\hook-six.moves.py'.
15880 INFO: Processing pre-safe import module hook win32com from 'c:\\users\\benbe\\appdata\\local\\programs\\python\\python36\\lib\\site-packages\\_pyinstaller_hooks_c
ontrib\\hooks\\pre_safe_import_module\\hook-win32com.py'.
18031 INFO: Processing module hooks...
18031 INFO: Loading module hook 'hook-certifi.py' from 'c:\\users\\benbe\\appdata\\local\\programs\\python\\python36\\lib\\site-packages\\_pyinstaller_hooks_contrib\\ho
oks\\stdhooks'...
18038 INFO: Loading module hook 'hook-pythoncom.py' from 'c:\\users\\benbe\\appdata\\local\\programs\\python\\python36\\lib\\site-packages\\_pyinstaller_hooks_contrib\\
hooks\\stdhooks'...
18328 INFO: Loading module hook 'hook-pywintypes.py' from 'c:\\users\\benbe\\appdata\\local\\programs\\python\\python36\\lib\\site-packages\\_pyinstaller_hooks_contrib\
\hooks\\stdhooks'...
18601 INFO: Loading module hook 'hook-win32com.py' from 'c:\\users\\benbe\\appdata\\local\\programs\\python\\python36\\lib\\site-packages\\_pyinstaller_hooks_contrib\\h
ooks\\stdhooks'...
18697 INFO: Loading module hook 'hook-distutils.py' from 'c:\\users\\benbe\\appdata\\local\\programs\\python\\python36\\lib\\site-packages\\pyinstaller-4.1.dev0+dc9680d
526-py3.6.egg\\PyInstaller\\hooks'...
18699 INFO: Loading module hook 'hook-encodings.py' from 'c:\\users\\benbe\\appdata\\local\\programs\\python\\python36\\lib\\site-packages\\pyinstaller-4.1.dev0+dc9680d
526-py3.6.egg\\PyInstaller\\hooks'...
18765 INFO: Loading module hook 'hook-importlib_Metadata.py' from 'c:\\users\\benbe\\appdata\\local\\programs\\python\\python36\\lib\\site-packages\\pyinstaller-4.1.dev
0+dc9680d526-py3.6.egg\\PyInstaller\\hooks'...
18768 INFO: Loading module hook 'hook-lib2to3.py' from 'c:\\users\\benbe\\appdata\\local\\programs\\python\\python36\\lib\\site-packages\\pyinstaller-4.1.dev0+dc9680d52
6-py3.6.egg\\PyInstaller\\hooks'...
18803 INFO: Loading module hook 'hook-numpy.core.py' from 'c:\\users\\benbe\\appdata\\local\\programs\\python\\python36\\lib\\site-packages\\pyinstaller-4.1.dev0+dc9680
d526-py3.6.egg\\PyInstaller\\hooks'...
19214 INFO: Loading module hook 'hook-numpy.py' from 'c:\\users\\benbe\\appdata\\local\\programs\\python\\python36\\lib\\site-packages\\pyinstaller-4.1.dev0+dc9680d526-
py3.6.egg\\PyInstaller\\hooks'...
19216 INFO: Loading module hook 'hook-pkg_resources.py' from 'c:\\users\\benbe\\appdata\\local\\programs\\python\\python36\\lib\\site-packages\\pyinstaller-4.1.dev0+dc9
680d526-py3.6.egg\\PyInstaller\\hooks'...
19739 WARNING: Hidden import "pkg_resources.py2_warn" not found!
19739 WARNING: Hidden import "pkg_resources.markers" not found!
19741 INFO: Excluding import '__main__'
19742 INFO:   Removing import of __main__ from module pkg_resources
19742 INFO: Loading module hook 'hook-pytz.py' from 'c:\\users\\benbe\\appdata\\local\\programs\\python\\python36\\lib\\site-packages\\pyinstaller-4.1.dev0+dc9680d526-p
y3.6.egg\\PyInstaller\\hooks'...
19892 INFO: Loading module hook 'hook-setuptools.py' from 'c:\\users\\benbe\\appdata\\local\\programs\\python\\python36\\lib\\site-packages\\pyinstaller-4.1.dev0+dc9680
d526-py3.6.egg\\PyInstaller\\hooks'...
20380 INFO: Loading module hook 'hook-sqlalchemy.py' from 'c:\\users\\benbe\\appdata\\local\\programs\\python\\python36\\lib\\site-packages\\pyinstaller-4.1.dev0+dc9680
d526-py3.6.egg\\PyInstaller\\hooks'...
20610 INFO:   Found 4 sqlalchemy hidden imports
20611 WARNING: Hidden import "MysqLdb" not found!
20624 WARNING: Hidden import "sqlalchemy.sql.functions.func" not found!
20626 INFO: Excluding import 'sqlalchemy.testing'
20628 INFO:   Removing import of sqlalchemy.testing.util from module sqlalchemy.orm.util
20628 INFO:   Removing import of sqlalchemy.testing.config from module sqlalchemy.testing
20628 INFO:   Removing import of sqlalchemy.testing.exclusions from module sqlalchemy.testing
20629 INFO:   Removing import of sqlalchemy.testing.mock from module sqlalchemy.testing
20629 INFO:   Removing import of sqlalchemy.testing.util from module sqlalchemy.testing
20629 INFO:   Removing import of sqlalchemy.testing.warnings from module sqlalchemy.testing
20629 INFO:   Removing import of sqlalchemy.testing.engines from module sqlalchemy.testing
20629 INFO:   Removing import of sqlalchemy.testing.assertsql from module sqlalchemy.testing
20630 INFO:   Removing import of sqlalchemy.testing.assertions from module sqlalchemy.testing
20630 INFO:   Removing import of sqlalchemy.testing from module sqlalchemy.testing
20630 INFO:   Removing import of sqlalchemy.testing from module sqlalchemy.testing.config
20630 INFO:   Removing import of sqlalchemy.testing from module sqlalchemy.testing.mock
20630 INFO:   Removing import of sqlalchemy.testing.config from module sqlalchemy.testing.assertions
20630 INFO:   Removing import of sqlalchemy.testing.exclusions from module sqlalchemy.testing.assertions
20631 INFO:   Removing import of sqlalchemy.testing.mock from module sqlalchemy.testing.assertions
20631 INFO:   Removing import of sqlalchemy.testing.util from module sqlalchemy.testing.assertions
20631 INFO:   Removing import of sqlalchemy.testing.assertsql from module sqlalchemy.testing.assertions
20631 INFO:   Removing import of sqlalchemy.testing from module sqlalchemy.testing.assertions
20631 INFO:   Removing import of sqlalchemy.testing from module sqlalchemy.testing.assertsql
20631 INFO:   Removing import of sqlalchemy.testing.engines from module sqlalchemy.testing.util
20631 INFO:   Removing import of sqlalchemy.testing.config from module sqlalchemy.testing.util
20631 INFO:   Removing import of sqlalchemy.testing from module sqlalchemy.testing.util
20631 INFO:   Removing import of sqlalchemy.testing.assertions from module sqlalchemy.testing.engines
20632 INFO:   Removing import of sqlalchemy.testing.config from module sqlalchemy.testing.engines
20632 INFO:   Removing import of sqlalchemy.testing from module sqlalchemy.testing.engines
20632 INFO:   Removing import of sqlalchemy.testing.util from module sqlalchemy.testing.engines
20633 INFO:   Removing import of sqlalchemy.testing.config from module sqlalchemy.testing.exclusions
20633 INFO:   Removing import of sqlalchemy.testing from module sqlalchemy.testing.exclusions
20633 INFO:   Removing import of sqlalchemy.testing.assertions from module sqlalchemy.testing.warnings
20633 INFO:   Removing import of sqlalchemy.testing from module sqlalchemy.testing.warnings
20633 INFO: Loading module hook 'hook-sqlite3.py' from 'c:\\users\\benbe\\appdata\\local\\programs\\python\\python36\\lib\\site-packages\\pyinstaller-4.1.dev0+dc9680d52
6-py3.6.egg\\PyInstaller\\hooks'...
20709 INFO: Loading module hook 'hook-sysconfig.py' from 'c:\\users\\benbe\\appdata\\local\\programs\\python\\python36\\lib\\site-packages\\pyinstaller-4.1.dev0+dc9680d
526-py3.6.egg\\PyInstaller\\hooks'...
20711 INFO: Loading module hook 'hook-xml.py' from 'c:\\users\\benbe\\appdata\\local\\programs\\python\\python36\\lib\\site-packages\\pyinstaller-4.1.dev0+dc9680d526-py
3.6.egg\\PyInstaller\\hooks'...
20796 INFO: Loading module hook 'hook-_tkinter.py' from 'c:\\users\\benbe\\appdata\\local\\programs\\python\\python36\\lib\\site-packages\\pyinstaller-4.1.dev0+dc9680d5
26-py3.6.egg\\PyInstaller\\hooks'...
20924 INFO: checking Tree
20924 INFO: Building Tree because Tree-00.toc is non existent
20924 INFO: Building Tree Tree-00.toc
20971 INFO: checking Tree
20971 INFO: Building Tree because Tree-01.toc is non existent
20971 INFO: Building Tree Tree-01.toc
21042 INFO: checking Tree
21042 INFO: Building Tree because Tree-02.toc is non existent
21042 INFO: Building Tree Tree-02.toc
21053 INFO: Looking for ctypes DLLs
21081 INFO: Analyzing run-time hooks ...
21087 INFO: Including run-time hook 'c:\\users\\benbe\\appdata\\local\\programs\\python\\python36\\lib\\site-packages\\pyinstaller-4.1.dev0+dc9680d526-py3.6.egg\\PyInst
aller\\hooks\\rthooks\\pyi_rth__tkinter.py'
21094 INFO: Including run-time hook 'c:\\users\\benbe\\appdata\\local\\programs\\python\\python36\\lib\\site-packages\\_pyinstaller_hooks_contrib\\hooks\\rthooks\\pyi_r
th_certifi.py'
21099 INFO: Including run-time hook 'c:\\users\\benbe\\appdata\\local\\programs\\python\\python36\\lib\\site-packages\\pyinstaller-4.1.dev0+dc9680d526-py3.6.egg\\PyInst
aller\\hooks\\rthooks\\pyi_rth_pkgres.py'
21105 INFO: Including run-time hook 'c:\\users\\benbe\\appdata\\local\\programs\\python\\python36\\lib\\site-packages\\pyinstaller-4.1.dev0+dc9680d526-py3.6.egg\\PyInst
aller\\hooks\\rthooks\\pyi_rth_win32comgenpy.py'
21111 INFO: Including run-time hook 'c:\\users\\benbe\\appdata\\local\\programs\\python\\python36\\lib\\site-packages\\pyinstaller-4.1.dev0+dc9680d526-py3.6.egg\\PyInst
aller\\hooks\\rthooks\\pyi_rth_multiprocessing.py'
21130 INFO: Looking for dynamic libraries
22213 INFO: Looking for eggs
22214 INFO: Using Python library C:\Users\benbe\AppData\Local\Programs\Python\python36\python36.dll
22214 INFO: Found binding redirects:
[]
22222 INFO: Warnings written to D:\Coding\PyProjects\Sociality\Sociality3\build\cyto\warn-cyto.txt
22357 INFO: Graph cross-reference written to D:\Coding\PyProjects\Sociality\Sociality3\build\cyto\xref-cyto.html
22426 INFO: checking PYZ
22426 INFO: Building PYZ because PYZ-00.toc is non existent
22426 INFO: Building PYZ (ZlibArchive) D:\Coding\PyProjects\Sociality\Sociality3\build\cyto\PYZ-00.pyz
24285 INFO: Building PYZ (ZlibArchive) D:\Coding\PyProjects\Sociality\Sociality3\build\cyto\PYZ-00.pyz completed successfully.
24314 INFO: checking PKG
24314 INFO: Building PKG because PKG-00.toc is non existent
24314 INFO: Building PKG (CArchive) PKG-00.pkg
40312 INFO: Building PKG (CArchive) PKG-00.pkg completed successfully.
40363 INFO: Bootloader c:\users\benbe\appdata\local\programs\python\python36\lib\site-packages\pyinstaller-4.1.dev0+dc9680d526-py3.6.egg\PyInstaller\bootloader\Windows-
64bit\runw.exe
40363 INFO: checking EXE
40364 INFO: Building EXE because EXE-00.toc is non existent
40364 INFO: Building EXE from EXE-00.toc
40442 INFO: copying icons from ['D:\\Coding\\PyProjects\\Sociality\\Sociality3\\favicon.ico']
40445 INFO: Writing RT_GROUP_ICON 0 resource with 20 bytes
40445 INFO: Writing RT_ICON 1 resource with 1128 bytes
40448 INFO: Updating manifest in D:\Coding\PyProjects\Sociality\Sociality3\build\cyto\runw.exe.q3_2x_ev
40448 INFO: Updating resource type 24 name 1 language 0
40449 INFO: Appending archive to EXE D:\Coding\PyProjects\Sociality\Sociality3\dist\cyto.exe
40474 INFO: Building EXE from EXE-00.toc completed successfully.

然后,我尝试在Pycharm内再次执行脚本,奇怪的是我收到一条错误消息:

Traceback (most recent call last):
  File "D:/Coding/PyProjects/Sociality/Sociality3/cyto.py",line 109,in <module>
    gui_example = TkinterGUIExample()
  File "D:/Coding/PyProjects/Sociality/Sociality3/cyto.py",line 35,in __init__
    database_uri="sqlite:///database.sqlite3"
  File "D:\Coding\PyProjects\Sociality\Sociality3\venv\lib\site-packages\chatterbot\chatterbot.py",line 37,in __init__
    utils.validate_adapter_class(adapter,LogicAdapter)
  File "D:\Coding\PyProjects\Sociality\Sociality3\venv\lib\site-packages\chatterbot\utils.py",line 64,in validate_adapter_class
    if not issubclass(import_module(validate_class),adapter_class):
  File "D:\Coding\PyProjects\Sociality\Sociality3\venv\lib\site-packages\chatterbot\utils.py",line 15,in import_module
    module = importlib.import_module(module_path)
  File "C:\Users\benbe\AppData\Local\Programs\Python\python36\lib\importlib\__init__.py",line 126,in import_module
    return _bootstrap._gcd_import(name[level:],package,level)
  File "<frozen importlib._bootstrap>",line 994,in _gcd_import
  File "<frozen importlib._bootstrap>",line 971,in _find_and_load
  File "<frozen importlib._bootstrap>",line 953,in _find_and_load_unlocked
ModuleNotFoundError: No module named 'chatterbot.pyinstallerlogic'

Process finished with exit code 1

当我尝试执行可执行文件时,我也收到错误消息:

无法执行脚本细胞

这是warn-cyto.txt文件https://paste.pythondiscord.com/dekexunera.coffeescript

这是pyinstaller -y -F -c -i的输出“ D:\ Coding \ PyProjects \ Sociality \ Sociality3 \ favicon.ico”“ D:\ Coding \ PyProjects \ Sociality \ Sociality3 \ cyto.py”

Error message

这是另一个错误消息:

Another error message

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)