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

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

新規登録して質問してみよう
ただいま回答率
85.47%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

コマンドプロンプト

コマンドプロンプト(cmd.exe)はMicrosoftによって提供されているコマンドラインインタプリタです。OS/2・Windows CE・Windows NTで使用可能です。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

2795閲覧

PythonをWindows用exe化、実行時のエラー、could not be extractedの解決方法

aiyo

総合スコア0

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

コマンドプロンプト

コマンドプロンプト(cmd.exe)はMicrosoftによって提供されているコマンドラインインタプリタです。OS/2・Windows CE・Windows NTで使用可能です。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

1クリップ

投稿2020/06/25 06:48

前提・実現したいこと

初投稿になります、プログラムの貼り方等見にくい部分などがあればご指摘願います。
データをploltlyでグラフ化するプログラムをexeファイルにしたいと思い、pyinstallerでexeファイルに変換することはできました。
しかし,実行したところ1つ目のエラーが発生しました。
様々な方の質問を参考にし,specファイルのdatasの部分を以下のように変更しました。

変更後、specファイルをpyinstallerで実行しexeファイルを実行したところ、
ファイルにアクセスはできているようですが、2つ目のエラーが発生しております。

importしてるライブラリは補足に添付いたします。
2つ目のエラーに対して解決方法をご教示願いたく、投稿いたします。
よろしくお願いいたします。

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

1. FileNotFoundError: [Errno 2] No such file or directory: 'C:\Users\user\AppData\Local\Temp\_MEI87842\dash_html_components\package-info.json' [11212] Failed to execute script exe 2. C:\Users\user\AppData\Local\Programs\Python\Python38\Lib\site-packages\dash_html_components\A.py could not be extracted! fopen: Invalid argument

該当のソースコード

html

1# -*- mode: python ; coding: utf-8 -*- 2 3block_cipher = None 4 5import sys 6sys.setrecursionlimit(5000) 7 8a = Analysis(['exe.py'], 9 pathex=['C:\Users\user\Desktop'], 10 binaries=[], 11 datas=[('dash_html_components','C:\Users\user\AppData\Local\Programs\Python\Python38\Lib\site-packages\dash_html_components')], 12 hiddenimports=['pkg_resources.py2_warn','dash_html_components'], 13 hookspath=[], 14 runtime_hooks=[], 15 excludes=[], 16 win_no_prefer_redirects=False, 17 win_private_assemblies=False, 18 cipher=block_cipher, 19 noarchive=False) 20pyz = PYZ(a.pure, a.zipped_data, 21 cipher=block_cipher) 22exe = EXE(pyz, 23 a.scripts, 24 a.binaries, 25 a.zipfiles, 26 a.datas, 27 [], 28 name='exe', 29 debug=False, 30 bootloader_ignore_signals=False, 31 strip=False, 32 upx=True, 33 upx_exclude=[], 34 runtime_tmpdir=None, 35 console=True ) 36

試したこと

moduleNotFoundErrorであればhiddenimportにファイル名を記入すれば解決しましたので(pkg_resources.py2_warnが見つからないとエラーが出たとき)、
https://max999blog.com/python-flask-pyinstaller-make-exe-file/を参考にし、同じようにdash_html_components.Aと指定して、まずはA.pyだけでも抽出してくれたらなと思いましたがエラー変わらず。。。

補足情報(FW/ツールのバージョンなど)

バージョン
Windows10(64bit)
PyInstaller 3.6
Python 3.8.1
pandas 1.0.1
numpy 1.18.1
dash-html-components 1.0.2
plotly 4.5.4

ここにより詳細な情報を記載してください。

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

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

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

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

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

patapi

2020/06/25 14:38 編集

いくつか調べていたところ、興味深いトピックをstackoverflowの中に見つけました。 [https://stackoverflow.com/questions/56758159/attributeerror-frozenimporter-object-has-no-attribute-filename] [日本語訳](https://translate.google.co.jp/translate?hl=ja&sl=auto&tl=ja&u=https%3A%2F%2Fstackoverflow.com%2Fquestions%2F56758159%2Fattributeerror-frozenimporter-object-has-no-attribute-filename) メインソースがわからないので、もしかしたらまったく的外れかもしれません。 もし下記に該当するならば、下記のようにdebug=Falseに変えて実行ファイルを作成することを試されてみてはいかがでしょうか。 ``` if __name__ == "__main__":    app.run_server(debug=True) ``` これを ``` if __name__ == "__main__":    app.run_server(debug=False) ``` に変えるというだけです。(※上記はインデントを全角で表現しているので、コピペするとエラーになるかも。コピペせず直接コードを書き換えてください)
aiyo

2020/06/26 10:19

ご返信ありがとうございます! 残念ながら私のメインソースではこのように記述していませんでした。 ですが、plotly関係のエラーですので参考にさせていただきます。 そして返信を見てみると、私のエラーの出ているdash_html_componentsとcoreをコンパイラに追加すると実行されるかもとありますので、やはり私のファイルの指定の仕方が悪いのでしょうか。。。 それとも、ファイルに対して何か処理を行う必要があるのでしょうか。。。 引き続きwebを漁ってみます。
guest

回答1

0

自己解決

解決しました、ミスと言わざるを得ません。
plotly.jsonファイルが見つからないエラー
こちらに答えが書いてありました。
やはり私のdatasの指定の仕方が悪かったようです。
編集後のコードは下記になります。

html

1datas=[('C:\Users\MDE ASSY\AppData\Local\Programs\Python\Python38\Lib\site-packages\dash_html_components\','dash_html_components')]

datasの引数について調べなおせばすぐに解決できそうなものでした。
私の場合、この後添付の質問と同じようにplotly.jsonのFIleNotFoundErrorが出ましたが、datasに追加して解決しました。
taizan205様、ご協力ありがとうございました。

投稿2020/06/29 01:07

aiyo

総合スコア0

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問