実現したいこと
実行環境:
windows10
Python 3.12.4 (tags/v3.12.4:8e8a4ba, Jun 6 2024, 19:30:16) [MSC v.1940 64 bit (AMD64)] on win32
python312\lib\site-packages (24.3.1)
pythonでoracleに接続するスクリプトをexeにして実行したい。
発生している問題・分からないこと
scriptで実行するとoracleに接続できるが、exeにして実行すると
racledb.exceptions.NotSupportedError: DPY-3016: python-oracledb thin mode cannot be used because the cryptography package is not installed
となってしまう。
エラーメッセージ
error
1C:\work\Py>C:\work\Py\dist\conoracle.exe 2Traceback (most recent call last): 3 File "conoracle.py", line 14, in <module> 4 connection = oracledb.connect(dsn=dsn) 5 ^^^^^^^^^^^^^^^^^^^^^^^^^ 6 File "oracledb\connection.py", line 1194, in connect 7 File "oracledb\connection.py", line 575, in __init__ 8 File "src\\oracledb\\impl/thin/connection.pyx", line 318, in oracledb.thin_impl.ThinConnImpl.__init__ 9 File "src\\oracledb\\impl/thin/connection.pyx", line 78, in oracledb.thin_impl.BaseThinConnImpl.__init__ 10 File "oracledb\errors.py", line 195, in _raise_err 11oracledb.exceptions.NotSupportedError: DPY-3016: python-oracledb thin mode cannot be used because the cryptography package is not installed
該当のソースコード
python
1import getpass 2import secrets 3import asyncio 4import uuid 5import cryptography.hazmat.primitives.kdf.pbkdf2 6import oracledb 7 8# DSN (Data Source Name) を指定して接続 9dsn = "tokusya/tokusya@192.168.10.150:1521/orcl" 10connection = oracledb.connect(dsn=dsn) 11 12# 接続が成功した場合のメッセージ 13print("接続に成功しました。")
spec
1# -*- mode: python ; coding: utf-8 -*- 2 3block_cipher = None 4 5a = Analysis( 6 ['conoracle.py'], 7 pathex=['C:\\work\\Py'], 8 binaries=[], 9 datas=[], 10 hiddenimports=['oracledb', 'getpass', 'secrets', 'asyncio', 'uuid', 'cryptography', 'cryptography.hazmat.primitives.kdf.pbkdf2'], # 必要なモジュールをリスト形式で指定 11 hookspath=[], 12 runtime_hooks=[], 13 excludes=[], 14 win_no_prefer_redirects=False, 15 win_private_assemblies=False, 16 cipher=block_cipher, 17 noarchive=False 18) 19 20pyz = PYZ(a.pure, a.zipped_data, cipher=block_cipher) 21 22exe = EXE( 23 pyz, 24 a.scripts, 25 a.binaries, 26 a.zipfiles, 27 a.datas, 28 [], 29 name='conoracle', 30 debug=False, 31 bootloader_ignore_signals=False, 32 strip=False, 33 upx=True, 34 upx_exclude=[], 35 runtime_tmpdir=None, 36 console=True 37)
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
speceファイルを変更したりしましたが、エラーは解消しませんでした。
補足
なし

回答1件
あなたの回答
tips
プレビュー