नोटिफ़ेरिडर प्राप्त करना: अपंजीकृत लोडर प्रकार के लिए यह ऑपरेशन नहीं कर सकता
मैंने पंडों के डेटाफ़्रेम का उपयोग करके दो एक्सेल शीट की तुलना करने के लिए एक विंडोज़ एप्लिकेशन बनाया है। मैंने डेटा के आधार पर कुछ रंगों के साथ कुछ स्तंभों को उजागर करने और इसे एक नई एक्सेल फ़ाइल में निर्यात करने के लिए dataframe.stlye.apply का उपयोग किया। इसके अलावा, मैंने .py को .exe में परिवर्तित करने के लिए pyinstaller का उपयोग किया है।
कोड स्निपेट - save_op_file फ़ंक्शन स्टाइल लागू करने और एक्सेल में सहेजने के लिए है।
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 "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_resource pyinstaller के साथ संगत नहीं है और jinja2 pkg_resources का उपयोग कर रहा है।
संकल्प:
मैंने .py फ़ाइल को .exe में परिवर्तित करने के लिए pyinstaller के बजाय cx_Freeze का उपयोग किया, और यह मेरे लिए ठीक काम किया। आप इसे cx_Freeze के लिए संदर्भित कर सकते हैं- मैं पायथन के लिए .py को .exe में कैसे परिवर्तित कर सकता हूं?
Cx_Freeze का उपयोग करने के लिए संदर्भ -
मैं पायथन के लिए .py से .exe में कैसे परिवर्तित कर सकता हूं?
धन्यवाद!