在尝试运行由pyinstaller构建的exe之后,我收到了这样的消息:
Traceback (most recent call last):
File "Lib\site-packages\PyInstaller\hooks\rthooks\pyi_rth_win32comgenpy.py", line 40, in <module>
File "PyInstaller\loader\pyimod03_importers.py", line 476, in exec_module
File "win32com\__init__.py", line 6, in <module>
File "PyInstaller\loader\pyimod03_importers.py", line 476, in exec_module
File "pythoncom.py", line 4, in <module>
File "pywintypes.py", line 44, in __import_pywin32_system_module__
ImportError: Module 'pythoncom' isn't in frozen sys.path ['C:\\Users\\KONRAD~1.DZI\\AppData\\Local\\Temp\\_MEI23842\\base_library.zip', 'C:\\Users\\KONRAD~1.DZI\\AppData\\Local\\Temp\\_MEI23842\\lib-dynload', 'C:\\Users\\KONRAD~1.DZI\\AppData\\Local\\Temp\\_MEI23842']
[11136] Failed to execute script 'pyi_rth_win32comgenpy' due to unhandled exception!
我尝试过构建带有隐藏导入的win32com模块的exe文件,并且没有,而且无论如何都不能工作。此外,我已经重新安装了win32com,但这也没有帮助。
pyinstaller --onefile --hidden-import win32com main.py
删除import win32com.client
并移除此部分后:
if mail.lower() == 'tak':
outlook = win32.Dispatch('outlook.application')
mail = outlook.CreateItem(0)
mail.To = dane['email']
mail.Subject = dane['temat']
if dane['zawartość'].lower() == 'brak':
mail.Body = ''
else:
mail.Body = dane['zawartość']
email_cc = ""
cc_list = dane['cc']
if cc_list[0].lower() == "brak":
pass
else:
for email in dane['cc']:
email_cc = email_cc + email + ';'
for file in os.listdir(rozdzielone_pliki + '\\'):
file_location = rozdzielone_pliki + '\\' + file
mail.Attachments.Add(file_location)
mail.Send()#
一切都很好。
我该怎么办?谢谢你帮忙。
发布于 2022-04-06 08:49:51
我也有同样的问题,只需将pythoncomxx.dll路径附加到pyinstaller *.spec文件。就像这样(当然,可以在命令行中使用
main.spec
a = Analysis(['main.py'],
pathex = [],
binaries = [('your\\python\\path\\Library\\bin\\pythoncom*.dll','.')]
...
)
然后,重新运行:
pyinstaller main.spec
这是工作。
这对我来说很管用。
提供一个可能的解决办法并不能保证它能起作用。
https://stackoverflow.com/questions/70121687
复制相似问题