首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Pyinstaller - ImportError:模块'pythoncom‘不在冻结的sys.path中

Pyinstaller - ImportError:模块'pythoncom‘不在冻结的sys.path中
EN

Stack Overflow用户
提问于 2021-11-26 08:49:14
回答 1查看 1.8K关注 0票数 1

在尝试运行由pyinstaller构建的exe之后,我收到了这样的消息:

代码语言:javascript
运行
复制
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并移除此部分后:

代码语言:javascript
运行
复制
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()#

一切都很好。

我该怎么办?谢谢你帮忙。

EN

回答 1

Stack Overflow用户

发布于 2022-04-06 08:49:51

我也有同样的问题,只需将pythoncomxx.dll路径附加到pyinstaller *.spec文件。就像这样(当然,可以在命令行中使用

main.spec

代码语言:javascript
运行
复制
a = Analysis(['main.py'],
             pathex = [],
             binaries = [('your\\python\\path\\Library\\bin\\pythoncom*.dll','.')]
             ...
             )

然后,重新运行:

pyinstaller main.spec

这是工作。

这对我来说很管用。

提供一个可能的解决办法并不能保证它能起作用。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70121687

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档