detect if we are in a pyinstaller bundle

This commit is contained in:
ThomasV 2015-01-26 16:53:59 +01:00
parent 16c72d286c
commit 9d40fb2ea8
3 changed files with 11 additions and 6 deletions

View File

@ -27,7 +27,8 @@ import time
import traceback import traceback
is_local = os.path.dirname(os.path.realpath(__file__)) == os.getcwd() is_bundle = getattr(sys, 'frozen', False)
is_local = not is_bundle and os.path.dirname(os.path.realpath(__file__)) == os.getcwd()
is_android = 'ANDROID_DATA' in os.environ is_android = 'ANDROID_DATA' in os.environ
if is_local: if is_local:
@ -66,7 +67,7 @@ except Exception:
# load local module as electrum # load local module as electrum
if __builtin__.use_local_modules: if is_bundle or is_local or is_android:
import imp import imp
imp.load_module('electrum', *imp.find_module('lib')) imp.load_module('electrum', *imp.find_module('lib'))
imp.load_module('electrum_gui', *imp.find_module('gui')) imp.load_module('electrum_gui', *imp.find_module('gui'))
@ -214,7 +215,7 @@ if __name__ == '__main__':
cmd = args[0] cmd = args[0]
if cmd == 'gui': if cmd == 'gui':
init_plugins(config) init_plugins(config, is_bundle or is_local or is_android)
gui_name = config.get('gui', 'classic') gui_name = config.get('gui', 'classic')
if gui_name in ['lite', 'classic']: if gui_name in ['lite', 'classic']:
gui_name = 'qt' gui_name = 'qt'

View File

@ -6,11 +6,11 @@ from i18n import _
plugins = [] plugins = []
def init_plugins(config): def init_plugins(config, local):
import imp, pkgutil, __builtin__, os import imp, pkgutil, __builtin__, os
global plugins global plugins
if __builtin__.use_local_modules: if local:
fp, pathname, description = imp.find_module('plugins') fp, pathname, description = imp.find_module('plugins')
plugin_names = [name for a, name, b in pkgutil.iter_modules([pathname])] plugin_names = [name for a, name, b in pkgutil.iter_modules([pathname])]
plugin_names = filter( lambda name: os.path.exists(os.path.join(pathname,name+'.py')), plugin_names) plugin_names = filter( lambda name: os.path.exists(os.path.join(pathname,name+'.py')), plugin_names)

View File

@ -65,6 +65,10 @@ def data_dir():
import __builtin__ import __builtin__
if __builtin__.use_local_modules: if __builtin__.use_local_modules:
return local_data_dir() return local_data_dir()
else:
if getattr(sys, 'frozen'):
basedir = sys._MEIPASS
return os.path.join(basedir, 'data')
else: else:
return appdata_dir() return appdata_dir()