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

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

新規登録して質問してみよう
ただいま回答率
85.48%
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

解決済

3回答

2321閲覧

Pythonのexe化について

AbcdefgFirst

総合スコア33

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グッド

0クリップ

投稿2020/09/11 00:49

お世話になっております。

Pythonのコードを作成し、他のPCでも動くようにしたいため、先日exe化したのですが
ファイルを渡したところうまく動作しないようです。

terminal

1pyinstaller sample.py --onefile

上記を実行すると下記のようになりました。

sample.py
master/
│ └master1.csv
│ └master1.csv
│ └master2.csv

pycache/
│ └sample.cpython-38

build/
└ sample/
│ └ (.txt,.toc,manifestなど)

dist/
│ └sample.exe

sample.spec

build、distのフォルダとspecファイルが作成されたのですが、他のPCでも動かしたい場合に必要なファイルは
dist内にあるexeを渡すだけでは動かないのでしょうか?
他に作成されたbuild内のファイルやspec等も渡す必要があるのでしょうか。。

masterにpyが読み込むcsvがあるのですがそれはexeと同じ階層に置きました。
無知で申し訳ありません。

また他のPCで動かしたいのですがexe化かする事しか思い浮かばなかったため他にいい方法などがあればご教示下さいますと助かります。
よろしくお願い致します。

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

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

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

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

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

jeanbiego

2020/09/11 01:12

「うまく動作しない」とは具体的にどうなったのでしょうか。エラーが出たならエラー文を載せてください。 また、ご自分のPCでの動作確認はされましたか。
AbcdefgFirst

2020/09/11 02:03

ご回答ありがとうございます。 自分のPCでの動作は確認しました。 exeの実行ファイルを他の端末でも動かしたいのですが、他の端末で実行すると出力されるべきファイルが出ていないようです。
guest

回答3

0

ベストアンサー

sample.py
master/
│ └master1.csv
│ └master1.csv
│ └master2.csv
となっている状態で、pyは動くのですよね。

ご自分のPCと、他のPCで試したときは、いずれも下記の状態でしたか?
sample.exe
master/
│ └master1.csv
│ └master1.csv
│ └master2.csv

もし上記で、ご自分のPCはOK,他のPCはNGという場合、py内のcsvのパスが絶対パスになっていたりしませんか。

投稿2020/09/11 02:34

jeanbiego

総合スコア3966

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

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

AbcdefgFirst

2020/09/11 03:33

ご回答ありがとうございます。 コードを見直したところ仰る通り実行ファイルのパスの読込の部分の記述でリテラルになっている部分がありました。 お騒がせしてすみませんでした。 皆様ありがとうございました。
guest

0

ファイル操作をするプログラムで自分のPCがでは動いて他のPCでは動かないということは、予め用意しておかなければならないファイル、フォルダがないことでエラーを出力している可能性があります。試しにexe化したファイルをソースコードとは別の保存先で動かしてみて確認してみてはいかがでしょう?

投稿2020/09/11 02:21

Supernove

総合スコア1154

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

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

AbcdefgFirst

2020/09/11 03:35

コードを修正して、別の保存先で確認したところ動作致しました。 アドバイスありがとうございます!
guest

0

pyinstallerでの躓きポイントはいくつか思い当たる節があります。
こちらを参考にすると見えてくるかも知れません。コマンドプロンプト上に同じエラーが出ていないかを確認してから、試すといいでしょう。

投稿2020/09/11 01:16

stdio

総合スコア3307

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

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

AbcdefgFirst

2020/09/11 01:56

ご回答ありがとうございます。 pyinstallerを使用してexeを作成することは出来ているのですが、他のPCで実行すると作成されるはずのファイルが出力されないです。 手元のPC端末では動きます。
stdio

2020/09/11 02:58

お手元のPCで動くのでしたら、そのexeを配布するだけでOKです。 他のPCでpyinstallerを利用してexeを作成したい場合は、そのPythonのプログラム内で利用している全ての外部モジュールを調べ、導入する必要があります。 もし、他のPCで実行すると動かないがexeだった場合は、貴方のプログラムにミスがあったことになりますので、しっかりとお確かめください。 原因についてはこちらはあくまで想像しか出来ませんが、「ファイルが出力されない」というコメントから察するに、絶対パスで記入すれは出力できるようになるかも知れません。
AbcdefgFirst

2020/09/11 03:36

コードを見直したところ、実行ファイルの記述に誤りがありました。 配布するモジュールが足りないのか、コードの記述に誤りがあったのか切り分けが出来ました! アドバイスありがとうございました。
stdio

2020/09/11 08:07

ファイルの入出力を行う場合は、実行中のファイルの場所(パス)を取得することを強くお勧めします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問