I compiled a Python script into an exe file, but after opening the exe, the console opens and an error occurs, then the console immediately closes. Perhaps this is due to the fact that I am using downloaded libraries (web3, bs4, hdwallet, bip_utils)
Traceback (most recent call last):
File "CryptoWallet.py", line 11, in <module>
File "<frozen importlib._bootstrap>", line 983, in _find_and_load
File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
File "PyInstaller\loader\pyimod03_importers.py", line 546, in exec_module
File "bip_utils\__init__.py", line 21, in <module>
File "<frozen importlib._bootstrap>", line 983, in _find_and_load
File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
File "PyInstaller\loader\pyimod03_importers.py", line 546, in exec_module
File "bip_utils\wif\__init__.py", line 1, in <module>
File "<frozen importlib._bootstrap>", line 983, in _find_and_load
File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
File "PyInstaller\loader\pyimod03_importers.py", line 546, in exec_module
File "bip_utils\wif\wif.py", line 27, in <module>
File "<frozen importlib._bootstrap>", line 983, in _find_and_load
File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
File "PyInstaller\loader\pyimod03_importers.py", line 546, in exec_module
File "bip_utils\ecc\__init__.py", line 2, in <module>
File "<frozen importlib._bootstrap>", line 983, in _find_and_load
File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
File "PyInstaller\loader\pyimod03_importers.py", line 546, in exec_module
File "bip_utils\ecc\elliptic_curve_getter.py", line 31, in <module>
File "<frozen importlib._bootstrap>", line 983, in _find_and_load
File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
File "PyInstaller\loader\pyimod03_importers.py", line 546, in exec_module
File "bip_utils\ecc\secp256k1.py", line 39, in <module>
File "<frozen importlib._bootstrap>", line 983, in _find_and_load
File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
File "PyInstaller\loader\pyimod03_importers.py", line 546, in exec_module
File "bip_utils\ecc\secp256k1_keys_coincurve.py", line 25, in <module>
File "<frozen importlib._bootstrap>", line 983, in _find_and_load
File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
File "PyInstaller\loader\pyimod03_importers.py", line 546, in exec_module
File "coincurve\__init__.py", line 1, in <module>
File "<frozen importlib._bootstrap>", line 983, in _find_and_load
File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
File "PyInstaller\loader\pyimod03_importers.py", line 546, in exec_module
File "coincurve\context.py", line 4, in <module>
File "<frozen importlib._bootstrap>", line 983, in _find_and_load
File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
File "PyInstaller\loader\pyimod03_importers.py", line 546, in exec_module
File "coincurve\flags.py", line 1, in <module>
File "<frozen importlib._bootstrap>", line 983, in _find_and_load
File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
File "PyInstaller\loader\pyimod03_importers.py", line 546, in exec_module
File "coincurve\_libsecp256k1.py", line 239, in <module>
File "cffi\api.py", line 150, in dlopen
File "cffi\api.py", line 832, in _make_ffi_library
File "cffi\api.py", line 827, in _load_backend_lib
OSError: cannot load library 'C:\CryptoWallet\dist\CryptoWallet\coincurve\libsecp256k1.dll': error 0x7e. Additionally, ctypes.util.find_library() did not manage to locate a library called 'C:\\\CryptoWallet\\dist\\CryptoWallet\\coincurve\\libsecp256k1.dll'
[21180] Failed to execute script 'CryptoWallet' due to unhandled exception!
It seems like you need to copy the files that your project uses in to the exe. To do this you need to add-data
when running pyinstaller. You can use pyinstaller spec files to configure the settings of your compilation.
Here is a example of spec file (you need to modify it for your use):
a = Analysis(['C:\\path\\to\\your\\main\\py file.py'],
pathex=['C:\\path\\to\\search\\for\\imports'],
binaries=[],
datas=[('C:\\Users\\username\\AppData\\Local\\Programs\\Python\\Python38\\Lib\\site-packages\\package\\xxxx\\yyyyy\\*', '.\\package\\xxxx\\yyyyy'),
('C:\\Users\\username\\AppData\\Local\\Programs\\Python\\Python38\\Lib\\site-packages\\package2\\zzz\\*', '.\\package2\\zzz'),
],
hiddenimports=["a_package"], #A list of module names (relative or absolute) that should be part of the bundled app
hookspath=[],
runtime_hooks=[],
excludes=[],
win_no_prefer_redirects=False,
win_private_assemblies=False,
cipher=None,
noarchive=False)
pyz = PYZ(a.pure, a.zipped_data,
cipher=None)
exe = EXE(pyz,
a.scripts,
a.binaries,
a.zipfiles,
a.datas,
[],
name='nameOfExe',
debug=False,
bootloader_ignore_signals=False,
strip=False,
upx=True,
upx_exclude=[],
runtime_tmpdir=None,
console=False,
icon='icon.ico') # specify icon
You can check other parameters and what they do from Pyinstaller docs.
This file can be run using:
python -m PyInstaller -F main.spec --clean
Collected from the Internet
Please contact javaer1[email protected] to delete if infringement.
Comments