Py2Exe “Missing Modules”

匿名 (未验证) 提交于 2019-12-03 01:18:02

问题:

I'm trying to convert my python project into an exe using Py2Exe. It is worth noting that cx_freeze complains about the same three "missing modules", along with several dozen others. The problem is, no one anywhere tells how to resolve this.

I'm building on MS Windows XP 32-bit (VirtualBox).

C:\Documents and Settings\Jason\Desktop\redstring2>python setup.py py2exe running py2exe running build_py creating build creating build\lib copying redstring.py -> build\lib    3 missing Modules   ------------------ ? readline                            imported from cmd, code, pdb ? win32api                            imported from platform ? win32con                            imported from platform Building shared code archive 'dist\library.zip'. Copy c:\windows\system32\python34.dll to dist Copy C:\Python34\DLLs\select.pyd to dist\select.pyd Copy C:\Python34\DLLs\_ssl.pyd to dist\_ssl.pyd Copy C:\Python34\DLLs\_ctypes.pyd to dist\_ctypes.pyd Copy C:\Python34\DLLs\_lzma.pyd to dist\_lzma.pyd Copy C:\Python34\DLLs\_hashlib.pyd to dist\_hashlib.pyd Copy C:\Python34\DLLs\pyexpat.pyd to dist\pyexpat.pyd Copy C:\Python34\DLLs\_socket.pyd to dist\_socket.pyd Copy C:\Python34\DLLs\_bz2.pyd to dist\_bz2.pyd Copy C:\Python34\DLLs\unicodedata.pyd to dist\unicodedata.pyd 

My setup.py is as follows.

#!/usr/bin/python python  from setuptools import setup import py2exe  setup(name="Redstring",     version="2.0",     description="REDundant STRING generator",     author="MousePaw Labs",     url="http://www.mousepawgames.com/",     author_email="info@mousepawgames.com",     data_files=[("", ["redstring.png", "redstring_interface.glade"])],     py_modules=["redstring"],     ) 

This is a Python 3.4 project using GTK+ 3 (built in Glade). It runs just peachy on Ubuntu, and from python redstring.py, but I can't get the thing to compile down to an .exe.

So far I tried import platform, from platform import win32api, and all the like in both redstring.py and setup.py, along with importing platform via py2exe options in the setup file.

回答1:

win32api and win32con are part of Mark Hammond's Python Windows extensions (aka pywin32). readline is a module that is used (if present) by some code interacting with the console.

Both readline and pywin32 are optional modules/packages that are not abolutely required but will be used when present.

All in all - py2exe notices that these modules/packages are referenced by some code which will be included into your exe (it even mentions the modules that reference these mod/packages: cmd, code, pdb, platform). I hope you have tested your script - in the 'non-compiled' form, if it works correctly than you can safely ignore these messages: they are only warnings.

The reason that no executable is built is that the line 'console=["redstring"]' or 'windows=["redstring"]' is missing in the setup() call.



回答2:

So, it would happen that these libraries were never installed to begin with. Python may be "batteries included", but not to this extent. However, I'm answering this because fixing it isn't the most obvious thing in the world to some (myself included).

You need to install win32api (or pywin32, as it is officially called) from Sourceforge (at the moment, browse the files for the latest version, as the Download button links to README.txt) That will resolve win32con as well. (You cannot install pywin32 from pip at the moment, unfortunately.)

readline is not compatible with Windows, yet it asks for it. You actually have to install pyreadline, which is easiest from pip install pyreadline.

That should resolve all of those issues for py2exe. I'm still having trouble, but it's different trouble, so it's a different question.



标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!