vsphere-automation-sdk-python
vsphere-automation-sdk-python copied to clipboard
Pyinstaller issue
Describe the bug
After packaging app including VMware module, app cant start properly. Manual importing of that modules changed nothing I think issue is somewhere in hidden imports probably "settings" module importing dynamically somewhere in code
Traceback (most recent call last):
File "main.py", line 6, in <module>
File "PyInstaller\loader\pyimod02_importers.py", line 493, in exec_module
File "esxi_app\esxi_app.py", line 5, in <module>
File "PyInstaller\loader\pyimod02_importers.py", line 493, in exec_module
File "vmware\vapi\vsphere\client.py", line 10, in <module>
File "PyInstaller\loader\pyimod02_importers.py", line 493, in exec_module
File "com\vmware\cis_client.py", line 21, in <module>
File "PyInstaller\loader\pyimod02_importers.py", line 493, in exec_module
File "vmware\vapi\bindings\type.py", line 9, in <module>
File "PyInstaller\loader\pyimod02_importers.py", line 493, in exec_module
File "vmware\vapi\data\definition.py", line 10, in <module>
File "PyInstaller\loader\pyimod02_importers.py", line 493, in exec_module
File "vmware\vapi\data\value.py", line 14, in <module>
File "PyInstaller\loader\pyimod02_importers.py", line 493, in exec_module
File "vmware\vapi\l10n\runtime.py", line 28, in <module>
File "vmware\vapi\l10n\runtime.py", line 22, in get_runtime_message_factory
File "vmware\vapi\l10n\bundle.py", line 62, in __init__
File "vmware\vapi\l10n\bundle.py", line 62, in <listcomp>
File "pkg_resources\__init__.py", line 1166, in resource_string
File "pkg_resources\__init__.py", line 358, in get_provider
ModuleNotFoundError: No module named 'vmware.vapi.settings'
Reproduction steps
1.Pack file including vmware-api with "pyinstaller --onefile *filename*"
2.run *filename*.exe from "./dist" folder
Expected behavior
No import errors, like it was on debugging stage
Additional context
Maybe there are some hooks for pyinstaller? As there are lots of them for other packages.
update: After importing all modules it worked, but its so strange and ugly: maybe there's a way of automation that routine.
` import vmware.vapi.protocol.client.rpc.requests_provider import vmware.vapi.protocol.client.msg.json_connector import com.vmware.vapi.std_client import com.vmware.vcenter.hvc import com.vmware.cis import com.vmware.appliance_client import com.vmware.vcenter.hvc import com.vmware.content_client import com.vmware.cis.tagging_client import com.vmware.vcenter.hvc.links_client import com.vmware.vcenter.hvc.management_client import com.vmware.vcenter_client import com.vmware.vcenter.certificate_management_client import com.vmware.vcenter.crypto_manager_client import com.vmware.vcenter.datastore_client import com.vmware.vcenter.deployment_client import com.vmware.vcenter.guest_client import com.vmware.vcenter.identity_client import com.vmware.vcenter.services_client import com.vmware.vcenter.storage_client import com.vmware.vcenter.system_config_client import com.vmware.vcenter.tagging_client import com.vmware.vcenter.topology_client import com.vmware.vcenter.trusted_infrastructure_client import com.vmware.vcenter.vcha_client import com.vmware.vcenter.vm_client import com.vmware.vcenter.compute import com.vmware.vcenter.compute.policies_client import com.vmware.vcenter.vm.console_client import com.vmware.vcenter.vm.data_sets_client import com.vmware.vcenter.vm.guest_client import com.vmware.vcenter.vm.hardware_client import com.vmware.vcenter.vm.storage_client import com.vmware.vcenter.vm.tools_client import com.vmware.vcenter.vm_template import com.vmware.vcenter.lcm import com.vmware.appliance.recovery import com.vmware.appliance.access_client import com.vmware.appliance.health_client import com.vmware.appliance.local_accounts_client import com.vmware.appliance.localaccounts_client import com.vmware.appliance.logging_client import com.vmware.appliance.monitoring_client import com.vmware.appliance.networking_client import com.vmware.appliance.ntp_client import com.vmware.appliance.shutdown_client import com.vmware.appliance.support_bundle_client import com.vmware.appliance.supportbundle_client import com.vmware.appliance.system_client import com.vmware.appliance.update_client import com.vmware.vcenter.vm_template.library_items_client import com.vmware.vcenter.lcm.discovery_client import com.vmware.vcenter.lcm.update_client import com.vmware.appliance.recovery.backup_client import com.vmware.appliance.recovery.reconciliation_client import com.vmware.appliance.recovery.restore_client import com.vmware.vcenter.vm.guest import com.vmware.vcenter.vm.guest.filesystem_client import com.vmware.vcenter.vm.guest.networking_client
`