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

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

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

PyInstallerは、Pythonのスクリプトを一括でWindowsなどで動く実行可能ファイルに変換できるツールです。このツールを用いることで自作のPythonプログラムを別で使用する場合でもPythonをインストールする必要がありません。

Python

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

Q&A

0回答

769閲覧

argparseでエラーが発生する

tetsuya7724

総合スコア67

PyInstaller

PyInstallerは、Pythonのスクリプトを一括でWindowsなどで動く実行可能ファイルに変換できるツールです。このツールを用いることで自作のPythonプログラムを別で使用する場合でもPythonをインストールする必要がありません。

Python

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

0グッド

0クリップ

投稿2022/07/19 00:59

前提

pythonで画像編集のコードを作成しているのですが、他の人も使えるようにexe化をしたいです。
コマンドプロンプトから起動するようにしたいのですが、エラーが発生して動かないです。

実現したいこと

pyinstallerでコマンドプロンプトから動くexeを作りたい

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

SyntaxError: Non-UTF-8 code starting with '\x90' in file C:\Users\008D42\Desktop\retina_cv2mosaic_input.exe on line 2, but no encoding declared; see https://python.org/dev/peps/pep-0263/ for details

該当のソースコード

# coding=utf8 import argparse import cv2 from retinaface import RetinaFace def main(): parser = argparse.ArgumentParser(description='顔画像をモザイクにする') parser.add_argument("arg1") args = parser.parse_args() img = cv2.imread(args.arg1) dst_area = img.copy() resp = RetinaFace.detect_faces(dst_area, threshold = 0.5) print("faces:" + str(len(resp))) for key in resp: identity = resp[key] #--------------------- facial_area = identity["facial_area"] dst_area = mosaic_area(dst_area, facial_area[0], facial_area[1], (facial_area[2]-facial_area[0]), (facial_area[3]-facial_area[1]) , 0.1) cv2.imwrite(r'C:\Users\008D42\Pictures\output.'+ args.arg1.split(".")[1], dst_area) def int_tuple(t): return tuple(int(x) for x in t) def mosaic(src, ratio=0.1): small = cv2.resize(src, None, fx=ratio, fy=ratio, interpolation=cv2.INTER_NEAREST) return cv2.resize(small, src.shape[:2][::-1], interpolation=cv2.INTER_NEAREST) def mosaic_area(src, x, y, width, height, ratio): dst = src.copy() dst[y:y + height, x:x + width] = mosaic(dst[y:y + height, x:x + width], ratio) return dst if __name__ == "__main__": main() #------------------------------ #alignment """ img_path = "dataset/img11.jpg" resp = RetinaFace.extract_faces(img_path = img_path, align = True) for img in resp: plt.imshow(img[:, :, ::-1]) plt.axis('off') plt.show() cv2.imwrite('outputs/'+img_path.split("/")[1], img) """

試したこと

コードの最初に# coding=utf8を書くとうまくいくとサイトに書かれていたので書きました→同じエラーが発生

ローカルのデスクトップに作成したexeをコピーして、そのパスからexeをコマンドプロンプトから起動しました→同じエラーが発生しました

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

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

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

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

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

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

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

y_waiwai

2022/07/19 01:42

ソースコードはUTF8になってるでしょうか。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問