Pythonの自作外部関数呼び出し後に「OSError: [WinError 6] ハンドルが無効です。」が発生する
-
環境など
- Windows10 Home
- Python 3.8.5
モジュール構成
main.py
└ submodule1.py
main.py
import submodule1 as sm
cp = subprocess.run(['start', CONST.APPNAME , shell=True)
・・・中略
sm.xxx()
submodule1.py
def xxx():
・・・処理
return
処理概要
- main.py内で別のアプリケーションをsubprocess.runで呼び出している。
- その後、自作モジュールsubmodule1.pyを呼び出している。
- main.pyはコマンドプロンプトから直接実行している。
エラー内容
Exception ignored in:
Traceback (most recent call last):
File "C:\Users\XXXX\AppData\Local\Programs\Python\Python38-32\lib\subprocess.py", line 945, in del
self.internal_poll(_deadstate=_maxsize)
File "C:\Users\XXXX\AppData\Local\Programs\Python\Python38-32\lib\subprocess.py", line 1344, in _internalpoll
if _WaitForSingleObject(self._handle, 0) == _WAIT_OBJECT_0:
OSError: [WinError 6] ハンドルが無効です。
やりたいことと聞きたいこと
単純に記述量が多く、処理を分割したいだけなので引数なしで別モジュールとして分割しています。しかしハンドルが無効ですとエラーがでます。
メインモジュール単体とサブモジュール単体それぞれで動かすと正常終了しますが、組み合わせると上記のエラーが起こります。
単体だとうまくいくのに自作関数と組み合わせるとエラーになるのがよく分からず、エラーメッセージを見るとsubprocessが何か関係してそうというのと、恐らくプロセス関係のことだと推測しましたが、その先どう調査すればよいかも分からず、行き詰ってしまったため、質問させて頂きました。
何かヒントを頂けると幸いです。
よろしくお願いします。