运行exe后运行队列导入错误

时间:2017-05-16 11:44:13

标签: python python-2.7

我使用py2exe创建了exe之后我面临以下错误 我检查了lib目录,Queue.py已经存在于该目录中 请帮我解决这个问题 即时通讯使用python 2.7

Traceback (most recent call last):
  File "Game2048.py", line 12, in <module>
  File "pynput\__init__.pyc", line 23, in <module>
  File "pynput\keyboard\__init__.pyc", line 44, in <module>
  File "pynput\keyboard\_win32.pyc", line 32, in <module>
  File "pynput\_util\__init__.pyc", line 34, in <module>
  File "six.pyc", line 203, in load_module
  File "six.pyc", line 115, in _resolve
  File "six.pyc", line 82, in _import_module
ImportError: No module named Queue

1 个答案:

答案 0 :(得分:0)

py2exe通过检查setup.py中明确提到的那些模块中的import语句来决定要包含在最终ZIP文件或可执行文件中的模块。然后,它将这些导入的模块添加到可执行文件的依赖项中,并检查这些新添加的模块中的所有import语句,以查找更多必需的模块,依此类推,直到在导入中找不到更多新模块。

这里,模块Queue是以动态方式导入的,基本上是通过调用__import__("Queue")之类的东西来调用py2exe无法自动识别的。因此,模块没有被视为必要。

要解决此问题,请在已添加到可执行文件的模块中添加人工依赖:

if False:
    import Queue

代码无效,但py2exe会看到import语句并将跟随它。

相关问题