问题描述
我正在尝试创建一个聊天机器人,并使用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解释器中安装了以下代码:chatterbot,chatterbot-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”
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)