获取未实现错误:无法对未注册的加载程序类型执行此操作



我已经构建了一个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, row_idx=pos[0], col_idx=pos[1], axis= None)
else:
df1 = df1.apply(write_style_red, row_idx=pos[0], col_idx=pos[1], 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,row_idx,col_idx):
color = 'background-color: red'
df_styler = pd.DataFrame('', index=x.index, columns=x.columns)
df_styler.iloc[row_idx,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 "pandascoreframe.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:usersasuspycharmprojectsmyprojectvenvlibsite- 
packagesPyInstallerloaderpyimod03_importers.py", line 493, in exec_module 
exec(bytecode, module. dict ) 
File "pandasioformatsstyle.py", line 51, in <module> 
File "pandasioformatsstyle.py", line 124, in Styler 
File "jinja2environment.py", line 883, in get_template 
File "jinja2environment.py", line 857, in _load_template 
File "jinja2loaders.py", line 115, in load File "jinja2loaders.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_resource。

分辨率:

我使用cx_Freeze而不是pyinstaller将.py文件转换为.exe,它对我来说很好。你可以参考cx_Freeze-我如何将.py转换为Python的.exe?

使用cx_Freeze-的参考

如何将.py转换为Python的.exe?

谢谢!

最新更新