Error with keystoneauth1.identity.v3 when building executables with Windows (pyinstaller, cx_Freeze, py2exe)

Bug #2039087 reported by Martti Ilvesmäki
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
python-swiftclient
New
Undecided
Unassigned

Bug Description

I am facing a problem when converting my python app to .exe- file. The issue seems to be with keystoneauth1 library.

I created a minimal test "hello.py" for troubleshooting and isolated the issue to be when importing keystoneauth1.identity.v3. I can run the script below in console normally with expected output but the built .exe- file fails.

from keystoneauth1.identity import v3
print("Hello World!")

Following errors occur when running the created .exe- files:

pyinstaller

File "hello.py", line 1, in \<module\>
File "\<frozen importlib.\_bootstrap\>", line 1027, in \_find_and_load
File "\<frozen importlib.\_bootstrap\>", line 1006, in \_find_and_load_unlocked
File "\<frozen importlib.\_bootstrap\>", line 688, in _load_unlocked
File "PyInstaller\\loader\\pyimod02_importers.py", line 385, in exec_module
File "keystoneauth1\\identity_init_.py", line 13, in \<module\>
File "\<frozen importlib.\_bootstrap\>", line 1027, in \_find_and_load
File "\<frozen importlib.\_bootstrap\>", line 1006, in \_find_and_load_unlocked
File "\<frozen importlib.\_bootstrap\>", line 688, in \_load_unlocked
File "PyInstaller\\loader\\pyimod02_importers.py", line 385, in exec_module
File "keystoneauth1\\identity\\base.py", line 21, in \<module\>
File "\<frozen importlib.\_bootstrap\>", line 1027, in \_find_and_load
File "\<frozen importlib.\_bootstrap\>", line 1006, in \_find_and_load_unlocked
File "\<frozen importlib.\_bootstrap\>", line 688, in _load_unlocked
File "PyInstaller\\loader\\pyimod02_importers.py", line 385, in exec_module
File "keystoneauth1\\access_init_.py", line 13, in \<module\>
File "\<frozen importlib.\_bootstrap\>", line 1027, in \_find_and_load
File "\<frozen importlib.\_bootstrap\>", line 1006, in \_find_and_load_unlocked
File "\<frozen importlib.\_bootstrap\>", line 688, in \_load_unlocked
File "PyInstaller\\loader\\pyimod02_importers.py", line 385, in exec_module
File "keystoneauth1\\access\\access.py", line 20, in \<module\>
File "\<frozen importlib.\_bootstrap\>", line 1027, in \_find_and_load
File "\<frozen importlib.\_bootstrap\>", line 1006, in \_find_and_load_unlocked
File "\<frozen importlib.\_bootstrap\>", line 688, in \_load_unlocked
File "PyInstaller\\loader\\pyimod02_importers.py", line 385, in exec_module
File "keystoneauth1\\access\\service_catalog.py", line 22, in \<module\>
File "\<frozen importlib.\_bootstrap\>", line 1027, in \_find_and_load
File "\<frozen importlib.\_bootstrap\>", line 1006, in \_find_and_load_unlocked
File "\<frozen importlib.\_bootstrap\>", line 688, in \_load_unlocked
File "PyInstaller\\loader\\pyimod02_importers.py", line 385, in exec_module
File "keystoneauth1\\discover.py", line 28, in \<module\>
File "\<frozen importlib.\_bootstrap\>", line 1027, in \_find_and_load
File "\<frozen importlib.\_bootstrap\>", line 1006, in \_find_and_load_unlocked
File "\<frozen importlib.\_bootstrap\>", line 688, in _load_unlocked
File "PyInstaller\\loader\\pyimod02_importers.py", line 385, in exec_module
File "os_service_types_init_.py", line 18, in \<module\>
File "\<frozen importlib.\_bootstrap\>", line 1027, in \_find_and_load
File "\<frozen importlib.\_bootstrap\>", line 1006, in \_find_and_load_unlocked
File "\<frozen importlib.\_bootstrap\>", line 688, in _load_unlocked
File "PyInstaller\\loader\\pyimod02_importers.py", line 385, in exec_module
File "os_service_types\\service_types.py", line 23, in \<module\>
File "os_service_types\\data_init_.py", line 30, in read_data
FileNotFoundError: \[Errno 2\] No such file or directory: '\\Local\\Temp\\\_MEI2202\\os_service_types\\data\\service-types.json'
\[13472\] Failed to execute script 'hello' due to unhandled exception!

cx_Freeze

.venv\\Lib\\site-packages\\cx_Freeze\\initscripts\__startup_\_.py", line 124, in run
.venv\\Lib\\site-packages\\cx_Freeze\\initscripts\\console.py", line 16, in run
exec(code, module_main.__dict__)
File "hello.py", line 1, in \<module\>
File ".venv\\lib\\site-packages\\keystoneauth1\\identity\__init_\_.py", line 13, in \<module\>
from keystoneauth1.identity import base
File ".venv\\lib\\site-packages\\keystoneauth1\\identity\\base.py", line 21, in \<module\>
from keystoneauth1 import access
File ".venv\\lib\\site-packages\\keystoneauth1\\access\__init_\_.py", line 13, in \<module\>
from keystoneauth1.access.access import \* # noqa
File ".venv\\lib\\site-packages\\keystoneauth1\\access\\access.py", line 20, in \<module\>
from keystoneauth1.access import service_catalog
ImportError: cannot import name 'service_catalog' from partially initialized module 'keystoneauth1.access' (most likely due to a circular import) (build\\exe.win-amd64-3.10\\lib\\keystoneauth1\\access\__init_\_.pyc)

py2exe

File "hello.py", line 1, in \<module\>
File "keystoneauth1\\identity\__init_\_.pyc", line 13, in \<module\>
File "keystoneauth1\\identity\\base.pyc", line 21, in \<module\>
File "keystoneauth1\\access\__init_\_.pyc", line 13, in \<module\>
File "keystoneauth1\\access\\access.pyc", line 20, in \<module\>
File "keystoneauth1\\access\\service_catalog.pyc", line 22, in \<module\>
File "keystoneauth1\\discover.pyc", line 28, in \<module\>
File "os_service_types\__init_\_.pyc", line 18, in \<module\>
File "os_service_types\\service_types.pyc", line 23, in \<module\>
File "os_service_types\\data\__init_\_.pyc", line 30, in read_data
FileNotFoundError: \[Errno 2\] No such file or directory: '\\dist\\library.zip\\os_service_types\\data\\service-types.json'

I have tested with python versions 3.9.13 and 3.10.11. I am using virtual environment.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.