質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Python 2.7

Python 2.7は2.xシリーズでは最後のメジャーバージョンです。Python3.1にある機能の多くが含まれています。

Q&A

1回答

2777閲覧

py2exeでwin32uiのインポートエラーを解決したいです

D.I

総合スコア42

Python 2.7

Python 2.7は2.xシリーズでは最後のメジャーバージョンです。Python3.1にある機能の多くが含まれています。

0グッド

0クリップ

投稿2016/10/10 07:55

###実現したいこと
py2exe で、win32uiを用いても実行できるexeファイルを作ることです。
独学で、プログラムミングをしていますので、詳しい解説を期待しております。
また、今回初めての質問なので、誤った書き方などがありましたら指摘してほしいです。
よろしくお願いします

###補足情報(言語/FW/ツール等のバージョンなど)
python 2.7
py2exe バージョン 0.6.9

###発生している問題・エラーメッセージ

python

1エラーメッセージ 2Traceback (most recent call last): 3 File "作成プログラム名", line 4, in <module> 4 File "zipextimporter.pyo", line 98, in load_module 5ImportError: MemoryLoadLibrary failed loading win32ui.pyd 6 7

行ったこと

"http://www.py2exe.org/index.cgi/Tutorial#Step52"
"http://surgo.jp/2010/08/pyqt-py2exe.html"
などを参考にし、setupファイルに追加しました。
また、C++ 2008 Redistributable Package (x86) が必要らしく、ダウンロードしたのですがどのように用いればよいのかわらず、詳しく記載されているサイトが今のところありませんでした。
今回作成しているプログラムは、以下のメソッドを用いています。

win32ui.CreateDCFromHandle(dc)

python

1# setupfile 2 3# 以下を追加 4 5WIN32UI_DIR = r"C:\----\python\Lib\site-packages\pythonwin" 6 7mfcfiles = [os.path.join(WIN32UI_DIR, i) for i in [ 8 "mfc90.dll", 9 "mfc90u.dll", 10 "mfcm90.dll", 11 "mfcm90u.dll", 12 "Microsoft.VC90.MFC.manifest"]] 13 14# ここからわからないです 15data_files = [ 16 ("Microsoft.VC90.MFC", mfcfiles), 17] 18 19setup( 20 data_files = data_files, 21

今まで用いていた setupfile

# -*- coding: utf-8 -*- import os import py2exe from distutils.core import setup SCR_NAME = "プログラム名 " origIsSystemDLL = py2exe.build_exe.isSystemDLL def isSystemDLL(pathname): if os.path.basename(pathname).lower() in ("libfreetype-6.dll", "libogg-0.dll", "sdl_ttf.dll"): return 0 return origIsSystemDLL(pathname) py2exe.build_exe.isSystemDLL = isSystemDLL # ここに先ほどのを追加 option = { "compressed" : 1 , "optimize" : 2 , "bundle_files" : 1 } setup( # ここに先ほどのを追加 options = {"py2exe" : option}, windows = [{"script" : SCR_NAME}], zipfile = None )

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

公式サイトの回答は、下記になっているようですが
すみませんが、動作させた事が無いので、情報提供のみということで。。。

http://www.py2exe.org/index.cgi/Py2exeAndWin32ui

投稿2016/10/19 03:22

nagaetty

総合スコア1106

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

D.I

2016/10/19 05:19

調べていただきありがとうございます。 そのサイトを参考に行ってみましたが、importエラーが出ます。 質問してから日数がたち回答が少ないので、今はPEやdllの仕組みを理解して自分で実行ファイルを作る方向で勉強しています。
nagaetty

2016/10/19 07:21

下記の部分の行って、実態と一致していますか? WIN32UI_DIR = r"C:\python2.7\Lib\site-packages\pythonwin"
D.I

2016/10/19 07:51

はい。 実行しているsetupファイルには、上記のように絶対パスを書いています 今 実効ファイル化し、dist内に作成された Microsoft.VC90.MFC 外で実行したときは、 importエラーがでて、実行ファイルを中に移動し実行したところランタイムエラーが出ました
nagaetty

2016/10/19 08:05

ランタイムエラーに関しては、Windowsの実行環境と合っていない可能性があるので、別問題だと思います。 C++ 2008 では古いってことではないかと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問