如何解决收到notimplementederror:无法对未注册的加载器类型执行此操作
我已经构建了一个Windows应用程序,用于使用Pandas数据框比较两个Excel工作表。我使用dataframe.stlye.apply突出显示了一些基于数据的具有不同颜色的列,并将其导出到新的Excel文件中。另外,我已经使用pyinstaller将.py转换为.exe。
代码段- save_op_file函数用于应用样式并保存到excel中。
def save_op_file(df):
save_path = filedialog.asksaveasfilename(defaultextension='xlsx')
writer = pd.ExcelWriter(save_path,engine='xlsxwriter')
df1 = ''
item_count = 0
for items in changes:
pos_count = 0
for pos in items:
if item_count == 0 and pos_count == 0:
df1 = df.style.apply(write_style_yellow,row_idx=pos[0],col_idx=pos[1],axis=None)
else:
if pos_count == 0:
df1 = df1.apply(write_style_yellow,axis= None)
else:
df1 = df1.apply(write_style_red,axis= None)
item_count += 1
pos_count += 1
print('df1:')
print(df1)
df1.to_excel(writer,sheet_name='Sheet1',index=False)
writer.save()
def write_style_yellow(x,row_idx,col_idx):
color = 'background-color: yellow'
df_styler = pd.DataFrame('',index=x.index,columns=x.columns)
df_styler.iloc[row_idx,col_idx] = color
return df_styler
def write_style_red(x,col_idx):
color = 'background-color: red'
df_styler = pd.DataFrame('',col_idx] = color
return df_styler
现在,当我运行我的应用程序时,它会引发此错误-
Exception in Tkinter callback
Traceback (most recent call last):
File "tkinter\ init .py",line 1883,in _call_
File "Excel.py",line 199,in <lambda>
File "Excel.py",line 217,in save_op_file
File "pandas\core\frame.py",line 836,in style
File "<frozen importlib._bootstrap>",line 991,in _find_and_load
File "<frozen importlib._bootstrap>",line 975,in _find_and_load_unlocked
File "<frozen importlib._bootstrap>",line 671,in _load_unlocked
File "c:\users\asus\pycharmprojects\myproject\venv\lib\site-
packages\PyInstaller\loader\pyimod03_importers.py",line 493,in exec_module
exec(bytecode,module. dict )
File "pandas\io\formats\style.py",line 51,in <module>
File "pandas\io\formats\style.py",line 124,in Styler
File "jinja2\environment.py",line 883,in get_template
File "jinja2\environment.py",line 857,in _load_template
File "jinja2\loaders.py",line 115,in load File "jinja2\loaders.py",line 248,in get_source
File "pkg_resources\ init .py",line 1404,in has_resource
File "pkg_resources\ init .py",line 1473,in _has
NotlmplementedError: Can't perform this operation for unregistered loader type*
能否请您帮助我解决此问题。 预先感谢。
解决方法
我能够解决这个问题。
发生此问题是因为pkg_resources与pyinstaller不兼容,而jinja2正在使用pkg_resources。
分辨率:
我使用cx_Freeze而不是pyinstaller将.py文件转换为.exe,它对我来说很好用。您可以参考cx_Freeze-如何将Python的.py转换为.exe?
使用cx_Freeze的参考-
How can I convert a .py to .exe for Python?
谢谢!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。