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 platform
、 redstring.py
とsetup.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のすべての問題を解決するはずです。 私はまだ問題を抱えていますが、それは別の問題ですので、それは別の質問です。