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

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

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

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

OpenCV

OpenCV(オープンソースコンピュータービジョン)は、1999年にインテルが開発・公開したオープンソースのコンピュータビジョン向けのクロスプラットフォームライブラリです。

Python 3.x

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

受付中

pyinstall のImportErrorについて

ygr
ygr

総合スコア0

PyInstaller

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

OpenCV

OpenCV(オープンソースコンピュータービジョン)は、1999年にインテルが開発・公開したオープンソースのコンピュータビジョン向けのクロスプラットフォームライブラリです。

Python 3.x

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

0回答

0リアクション

0クリップ

646閲覧

投稿2022/06/13 16:57

cv2でWebCamの映像を取得して、mediapipeで手の検出をしたデータをUnityに流すプログラムを書いて、Pyinstallerでexe化すると実行時エラーとして、2つ目のエラーが出ます。
試したこととしては、Pyinstallerのオプションとして--paths=cv2がある1つ前のフォルダ/cv2で指定しても、同様のエラーが発生しました。
よろしくお願いいたします。

python3

import cv2 import mediapipe as mp from email import message from asyncio.windows_events import NULL import socket import random import time import os import json import logging import datetime HOST = "127.0.0.1" MAINPORT = 50007 connectunity = True landmark_line_ids = [] fh = logging.FileHandler("log.log") logger = logging.getLogger("Logging") logger.addHandler(fh) def ConnectUnity(): if (connectunity == False): return client = socket.socket(socket.AF_INET, socket.SOCK_STREAM) result = str(os.getpid()) print(os.getpid()) client.connect((HOST, MAINPORT)) client.send(result.encode("utf-8")) data = client.recv(200) print(data.decode("utf-8")) return client def init_mp(): global landmark_line_ids mp_hands = mp.solutions.hands hands = mp_hands.Hands( max_num_hands = 1, #最大検出数 min_ditection_confidence = 0.7, #検出信頼度 min_tracking_confidence = 0.7 #追跡信頼度 ) # landmarkの繋がり表示用 landmark_line_ids = [ (0, 1), (1, 5), (5, 9), (9, 13), (13, 17), (17, 0), # 掌 (1, 2), (2, 3), (3, 4), # 親指 (5, 6), (6, 7), (7, 8), # 人差し指 (9, 10), (10, 11), (11, 12), # 中指 (13, 14), (14, 15), (15, 16), # 薬指 (17, 18), (18, 19), (19, 20), # 小指 ] cap = cv2.VideoCapture(0) return hands, cap def GetHands(hands, cap): global landmark_line_ids if cap.isOpened(): success, img = cap.read() if not success: sendlog(30, "cap.read() is fail") return NULL img = cv2.flip(img, 1) #画像の左右を反転 img_h, img_w, _ = img.shape Res = NULL #検出処理 results = hands.process(cv2.cvtColor(img, cv2.COLOR_BGR2RGB)) if results.multi_hand_world_landmarks: Res = make_hand_landmarks_json(results.multimulti_hand_world_landmarks[0], img_h, img_w) else: sendlog(30, "cap.isOpened is false") return Res def make_hand_landmarks_json(hand_landmarks, img_h, img_w): res = [] index = 0 for lm in (hand_landmarks.landmark): data_p = {} data = {} data_p["x"] = lm.x * img_w data_p["y"] = lm.y * img_h data_p["z"] = lm.z data["Index"] = index data["Point"] = data_p res.append(data) index += 1 return res def main(): client = ConnectUnity() hands, cap = init_mp() try: while True: data = GetHands(hands, cap) json_data = json.dumps(data) if(connectunity == True): client.send(json_data.encode("utf-8")) time.sleep(0.5) except ConnectionAbortedError: print("Connection Aborte") finally: cap.releace() def sendlog(num, string): now = str(datetime.datetime.now(datetime.timezone.utc)) logger.log(num, now + ">" + string) if __name__ == "__main__": main()
['C:\\Users\\shini\\AppData\\Local\\Temp\\_MEI225522\\base_library.zip', 'C:\\Users\\shini\\AppData\\Local\\Temp\\_MEI225522\\cv2', 'C:\\Users\\shini\\AppData\\Local\\Temp\\_MEI225522\\lib-dynload', 'C:\\Users\\shini\\AppData\\Local\\Temp\\_MEI225522'] Traceback (most recent call last): File "sample3.py", line 1, in <module> File "C:\Users\shini\AppData\Local\Temp\_MEI225522\cv2\__init__.py", line 181, in <module> bootstrap() File "C:\Users\shini\AppData\Local\Temp\_MEI225522\cv2\__init__.py", line 153, in bootstrap native_module = importlib.import_module("cv2") File "importlib\__init__.py", line 127, in import_module applySysPathWorkaround = True File "C:\Users\shini\AppData\Local\Temp\_MEI225522\cv2\__init__.py", line 181, in <module> bootstrap() File "C:\Users\shini\AppData\Local\Temp\_MEI225522\cv2\__init__.py", line 76, in bootstrap raise ImportError('ERROR: recursion is detected during loading of "cv2" binary extensions. Check OpenCV installation.') ImportError: ERROR: recursion is detected during loading of "cv2" binary extensions. Check OpenCV installation. [37256] Failed to execute script 'sample3' due to unhandled exception!

以下のような質問にはリアクションをつけましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

リアクションが多い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

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

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

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

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

ただいまの回答率
86.12%

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

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

質問する

関連した質問

同じタグがついた質問を見る

PyInstaller

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

OpenCV

OpenCV(オープンソースコンピュータービジョン)は、1999年にインテルが開発・公開したオープンソースのコンピュータビジョン向けのクロスプラットフォームライブラリです。

Python 3.x

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