tdetect if we are in a pyinstaller bundle - electrum - Electrum Bitcoin wallet
HTML git clone https://git.parazyd.org/electrum
DIR Log
DIR Files
DIR Refs
DIR Submodules
---
DIR commit 9d40fb2ea8b347e08b4b64897537e2197d4325e3
DIR parent 16c72d286c119562a591dc06303dfeefa3ccfa01
HTML Author: ThomasV <thomasv@gitorious>
Date: Mon, 26 Jan 2015 16:53:59 +0100
detect if we are in a pyinstaller bundle
Diffstat:
M electrum | 7 ++++---
M lib/plugins.py | 4 ++--
M lib/util.py | 6 +++++-
3 files changed, 11 insertions(+), 6 deletions(-)
---
DIR diff --git a/electrum b/electrum
t@@ -27,7 +27,8 @@ import time
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
if is_local:
t@@ -66,7 +67,7 @@ except Exception:
# load local module as electrum
-if __builtin__.use_local_modules:
+if is_bundle or is_local or is_android:
import imp
imp.load_module('electrum', *imp.find_module('lib'))
imp.load_module('electrum_gui', *imp.find_module('gui'))
t@@ -214,7 +215,7 @@ if __name__ == '__main__':
cmd = args[0]
if cmd == 'gui':
- init_plugins(config)
+ init_plugins(config, is_bundle or is_local or is_android)
gui_name = config.get('gui', 'classic')
if gui_name in ['lite', 'classic']:
gui_name = 'qt'
DIR diff --git a/lib/plugins.py b/lib/plugins.py
t@@ -6,11 +6,11 @@ from i18n import _
plugins = []
-def init_plugins(config):
+def init_plugins(config, local):
import imp, pkgutil, __builtin__, os
global plugins
- if __builtin__.use_local_modules:
+ if local:
fp, pathname, description = imp.find_module('plugins')
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)
DIR diff --git a/lib/util.py b/lib/util.py
t@@ -66,7 +66,11 @@ def data_dir():
if __builtin__.use_local_modules:
return local_data_dir()
else:
- return appdata_dir()
+ if getattr(sys, 'frozen'):
+ basedir = sys._MEIPASS
+ return os.path.join(basedir, 'data')
+ else:
+ return appdata_dir()
def usr_share_dir():
return os.path.join(sys.prefix, "share")