qiitaten2
@qiitaten2

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

PyInstallerでexeファイル化するとModuleNotFoundError

解決したいこと

PythonでSMB接続をするスクリプトを作成しております。

スクリプトファイルでの実行では正常に動作しますが、
PyInstallerでexeファイル化すると
「 ModuleNotFoundError: No module named 'smb' 」
が発生して実行することが出来なく困っております。

SMB接続はユーザー認証が必須となります。
職場で利用する関係上、実行ファイル化は必須となるため困っております。

お力をお貸しいただけると幸いです。

・環境
OS Windows11
Python 3.10.6
pyinstaller 5.6.1
pysmb 1.2.8

発生している問題・エラー

Traceback (most recent call last):
  File "smbtest.py", line 2, in <module>
ModuleNotFoundError: No module named 'smb'
[5504] Failed to execute script 'smbtest' due to unhandled exception!

または、問題・エラーが起きている画像をここにドラッグアンドドロップ

該当するソースコード

import platform
from smb.SMBConnection import SMBConnection

conn = SMBConnection(
    'USER',
    'PASSWORD',
    platform.uname().node,
    'NETBIOS')
conn.connect('192.168.1.1', 139)

print(conn.echo('echo success'))

conn.close()

自分で試したこと

pyinstallerの再インストール
pysmbの再インストール

0

1Answer

Comments

  1. @qiitaten2

    Questioner

    ご回答ありがとうございます。

    pip listではpysmbとpyinstallerの両方きちんと確認できます。

    Google検索結果から試行錯誤していきたいと思います。
    .specファイルにhiddenimports=['smb']やhiddenimports=['smb.SMBConnection']やhiddenimports=['SMBConnection']と記入し.specからEXE化してみたが変わらずなので、悩んでますが。
  2. なるほど…謎ですね。念の為
    python -m pip list
    の方で確認してください。また単にpyinstallerとするのではなく
    python -m pyinstaller
    で試してみてください。
    仮想環境を使っているわけではないのですよね?(絶対使った方が良いですが…)

Your answer might help someone💌