Python - FileNotFoundError for pysvn in calling exe compiled with py2exe

214 Views Asked by At

setup.py for py2exe:

setup(console=['TagProject.py'], options={'py2exe':{'dist_dir':'AriesTools'} } )

When I called the exe, I got the error:

Traceback (most recent call last):
  File "TagProject.py", line 7, in <module>
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 664, in _load_unlocked
  File "<frozen importlib._bootstrap>", line 627, in _load_backward_compatible
  File "<frozen zipimport>", line 259, in load_module
  File "pysvn\__init__.pyc", line 116, in <module>
  File "os.pyc", line 1111, in add_dll_directory
FileNotFoundError: [WinError 3] The system cannot find the path specified: 
'H:\\PythonScripts\\AriesTools\\library.zip\\pysvn'

Installed components:

Python 3.9.6 (32-bit)
Python 3.9 PySVN 1.9.13-2056 on Win32
py2exe-0.10.4.0-cp39-cp39-win32.whl

I used the same process to create exe for other scripts which do not use pysvn, and the exe did not show the same problem.

2

There are 2 best solutions below

0
pky On BEST ANSWER

I have solved the problem by removing the below statement in pysvn\__init__.py file:

add_dll_handle = os.add_dll_directory( os.path.dirname( __file__ ) )

The module pysvn still works fine without this statement. Hope someone figure out a better solution than this. For now, I am good with this.

1
pky On

Addition info, compilation output:

running py2exe

  4 missing Modules
  ------------------
? UserDict                            imported from pysvn
? _posixshmem                         imported from multiprocessing.resource_tracker, multiprocessing.shared_memory
? readline                            imported from cmd, code, pdb
? resource                            imported from test.support
Building 'AriesTools\TagProject.exe'.
Building shared code archive 'AriesTools\library.zip'.
Copy c:\users\nobody\appdata\local\programs\python\python39-32\python39.dll to AriesTools
Copy C:\Users\nobody\AppData\Local\Programs\Python\Python39-32\DLLs\unicodedata.pyd to AriesTools\unicodedata.pyd
Copy C:\Users\nobody\AppData\Local\Programs\Python\Python39-32\DLLs\select.pyd to AriesTools\select.pyd
Copy C:\Users\nobody\AppData\Local\Programs\Python\Python39-32\DLLs\_bz2.pyd to AriesTools\_bz2.pyd
Copy C:\Users\nobody\AppData\Local\Programs\Python\Python39-32\DLLs\_lzma.pyd to AriesTools\_lzma.pyd
Copy C:\Users\nobody\AppData\Local\Programs\Python\Python39-32\DLLs\pyexpat.pyd to AriesTools\pyexpat.pyd
Copy C:\Users\nobody\AppData\Local\Programs\Python\Python39-32\DLLs\_socket.pyd to AriesTools\_socket.pyd
Copy C:\Users\nobody\AppData\Local\Programs\Python\Python39-32\DLLs\_hashlib.pyd to AriesTools\_hashlib.pyd
Copy C:\Users\nobody\AppData\Local\Programs\Python\Python39-32\DLLs\_decimal.pyd to AriesTools\_decimal.pyd
Copy C:\Users\nobody\AppData\Local\Programs\Python\Python39-32\DLLs\_ssl.pyd to AriesTools\_ssl.pyd
Copy C:\Users\nobody\AppData\Local\Programs\Python\Python39-32\DLLs\_queue.pyd to AriesTools\_queue.pyd
Copy C:\Users\nobody\AppData\Local\Programs\Python\Python39-32\DLLs\_elementtree.pyd to AriesTools\_elementtree.pyd
Copy C:\Users\nobody\AppData\Local\Programs\Python\Python39-32\DLLs\_ctypes.pyd to AriesTools\_ctypes.pyd
Copy C:\Users\nobody\AppData\Local\Programs\Python\Python39-32\DLLs\_tkinter.pyd to AriesTools\_tkinter.pyd
Copy C:\Users\nobody\AppData\Local\Programs\Python\Python39-32\DLLs\_testinternalcapi.pyd to AriesTools\_testinternalcapi.pyd
Copy C:\Users\nobody\AppData\Local\Programs\Python\Python39-32\DLLs\_testcapi.pyd to AriesTools\_testcapi.pyd
Copy C:\Users\nobody\AppData\Local\Programs\Python\Python39-32\DLLs\_asyncio.pyd to AriesTools\_asyncio.pyd
Copy C:\Users\nobody\AppData\Local\Programs\Python\Python39-32\DLLs\_multiprocessing.pyd to AriesTools\_multiprocessing.pyd
Copy C:\Users\nobody\AppData\Local\Programs\Python\Python39-32\DLLs\_overlapped.pyd to AriesTools\_overlapped.pyd
Copy C:\Users\nobody\AppData\Local\Programs\Python\Python39-32\Lib\site-packages\pysvn\_pysvn_3_9.pyd to AriesTools\pysvn._pysvn_3_9.pyd
Copy DLL C:\Users\nobody\AppData\Local\Programs\Python\Python39-32\Lib\site-packages\pysvn\libsvn_client-1.dll to AriesTools\
Copy DLL C:\Users\nobody\AppData\Local\Programs\Python\Python39-32\Lib\site-packages\pysvn\libapriconv-1.dll to AriesTools\
Copy DLL C:\Users\nobody\AppData\Local\Programs\Python\Python39-32\Lib\site-packages\pysvn\libsvn_fs_fs-1.dll to AriesTools\
Copy DLL C:\Users\nobody\AppData\Local\Programs\Python\Python39-32\Lib\site-packages\pysvn\libsvn_diff-1.dll to AriesTools\
Copy DLL C:\Users\nobody\AppData\Local\Programs\Python\Python39-32\Lib\site-packages\pysvn\libaprutil-1.dll to AriesTools\
Copy DLL C:\Users\nobody\AppData\Local\Programs\Python\Python39-32\Lib\site-packages\pysvn\libsvn_fs_util-1.dll to AriesTools\
Copy DLL C:\Users\nobody\AppData\Local\Programs\Python\Python39-32\Lib\site-packages\pysvn\libapr-1.dll to AriesTools\
Copy DLL C:\Users\nobody\AppData\Local\Programs\Python\Python39-32\DLLs\tk86t.dll to AriesTools\
Copy DLL C:\Users\nobody\AppData\Local\Programs\Python\Python39-32\Lib\site-packages\pysvn\libsvn_fs_x-1.dll to AriesTools\
Copy DLL C:\Users\nobody\AppData\Local\Programs\Python\Python39-32\Lib\site-packages\pysvn\libsvn_wc-1.dll to AriesTools\
Copy DLL C:\Users\nobody\AppData\Local\Programs\Python\Python39-32\DLLs\libssl-1_1.dll to AriesTools\
Copy DLL C:\Users\nobody\AppData\Local\Programs\Python\Python39-32\Lib\site-packages\pysvn\libsvn_subr-1.dll to AriesTools\
Copy DLL C:\Users\nobody\AppData\Local\Programs\Python\Python39-32\DLLs\libffi-7.dll to AriesTools\
Copy DLL C:\Users\nobody\AppData\Local\Programs\Python\Python39-32\Lib\site-packages\pysvn\libsvn_delta-1.dll to AriesTools\
Copy DLL C:\Users\nobody\AppData\Local\Programs\Python\Python39-32\DLLs\libcrypto-1_1.dll to AriesTools\
Copy DLL C:\Users\nobody\AppData\Local\Programs\Python\Python39-32\Lib\site-packages\pysvn\libsvn_fs-1.dll to AriesTools\
Copy DLL C:\Users\nobody\AppData\Local\Programs\Python\Python39-32\Lib\site-packages\pysvn\libsvn_repos-1.dll to AriesTools\
Copy DLL C:\Users\nobody\AppData\Local\Programs\Python\Python39-32\Lib\site-packages\pysvn\libsvn_ra-1.dll to AriesTools\
Copy DLL C:\Users\nobody\AppData\Local\Programs\Python\Python39-32\DLLs\tcl86t.dll to AriesTools\
Press any key to continue . . .