vsphere-automation-sdk-python icon indicating copy to clipboard operation
vsphere-automation-sdk-python copied to clipboard

Pyinstaller issue

Open poshl9k opened this issue 1 year ago • 1 comments

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.

poshl9k avatar Aug 05 '22 09:08 poshl9k

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

`

poshl9k avatar Aug 05 '22 12:08 poshl9k