python - Py2Exe "モジュールが欠落している"




python-3.x gtk (2)

私はpy2Exeを使用して私のpythonプロジェクトをexeに変換しようとしています。 cx_freezeが同じ3つの "不足しているモジュール"について何十という他のものと一緒に不平を言うことは注目に値する。 問題は、誰もこれを解決する方法をどこにも教えてくれないということです。

私は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

私のsetup.pyは以下の通りです。

#!/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="[email protected]",
    data_files=[("", ["redstring.png", "redstring_interface.glade"])],
    py_modules=["redstring"],
    )

これは、GTK + 3(Gladeに組み込まれている)を使ったPython 3.4プロジェクトです。 それはUbuntuとpython redstring.pyから単なるpeachyで動作しますが、コンパイルすることができなくても.exeにコンパイルできます。

これまで私はfrom platform import win32api import platformredstring.pysetup.py両方で、セットアップファイルのpy2exeオプションを使ってプラットフォームをインポートするのと同じようにredstring.pyました。


win32apiとwin32conはMark HammondのPython Windows拡張(別名pywin32)の一部です。 readlineは、コンソールと対話するいくつかのコードによって(存在する場合)使用されるモジュールです。

readlineとpywin32は省略可能なモジュール/パッケージであり、絶対必要ではないが存在する場合には使用されます。

全体として - py2exeは、これらのモジュール/パッケージがあなたのexeに含まれるいくつかのコードによって参照されていることに気づいています(これらのmod /パッケージを参照するモジュール:cmd、code、pdb、platform)。 私はあなたがあなたのスクリプトをテストしたことがありますか?「非コンパイル」形式で、正しく動作するかどうかは、これらのメッセージを無視しても安全です。警告のみです。

実行可能ファイルが作成されない理由は、setup()呼び出しで 'console = ["redstring"]'または 'windows = ["redstring"]'という行が見つからないためです。


したがって、これらのライブラリは最初にインストールされたことはありませんでした。 Pythonは「電池を含む」かもしれませんが、この程度ではありません。 しかし、それを修正することは、世界で最も明白なものではありません(自分自身を含む)。

SourceforgeからWin32api(またはpywin32)をインストールする必要があります(現時点では、ダウンロードボタンがREADME.txtにリンクするので、最新バージョンのファイルを参照してください)。これはwin32conも解決します。 (現時点ではpipからpywin32をインストールすることはできません。残念ながら。)

readlineはWindowsと互換性がありませんが、それを求めています。 あなたは実際にpyreadlineをインストールする必要があります。これは、 pip install pyreadlineから一番簡単pip install pyreadline

それはpy2exeのすべての問題を解決するはずです。 私はまだ問題を抱えていますが、それは別の問題ですので、それは別の質問です。