Update helpers.get_resource_path to correctly find resources in frozen macOS app bundles

This commit is contained in:
Micah Lee 2017-02-21 14:34:34 -08:00
parent 42d2b0b417
commit 6f5a3aedbb
No known key found for this signature in database
GPG Key ID: 403C2657CD994F73

View File

@ -42,8 +42,13 @@ def get_resource_path(filename):
elif p == 'Linux' and sys.argv and sys.argv[0].startswith(sys.prefix): elif p == 'Linux' and sys.argv and sys.argv[0].startswith(sys.prefix):
# OnionShare is installed systemwide in Linux # OnionShare is installed systemwide in Linux
resources_dir = os.path.join(sys.prefix, 'share/onionshare') resources_dir = os.path.join(sys.prefix, 'share/onionshare')
elif getattr(sys, 'frozen', False): # Check if app is "frozen" with cx_Freeze
# http://cx-freeze.readthedocs.io/en/latest/faq.html#using-data-files elif getattr(sys, 'frozen', False):
# Check if app is "frozen"
# https://pythonhosted.org/PyInstaller/#run-time-information
if p == 'Darwin':
resources_dir = sys._MEIPASS
elif p == 'Windows':
resources_dir = os.path.join(os.path.dirname(sys.executable), 'resources') resources_dir = os.path.join(os.path.dirname(sys.executable), 'resources')
return os.path.join(resources_dir, filename) return os.path.join(resources_dir, filename)