diff options
author | Florian Bruhin <me@the-compiler.org> | 2021-01-26 14:31:01 +0100 |
---|---|---|
committer | Florian Bruhin <me@the-compiler.org> | 2021-01-26 14:31:01 +0100 |
commit | eeb26a6aa8e9ddc7b48d656ea93dea987ee88c79 (patch) | |
tree | 0bd35e53a7ada85cadb628524e36fe0b91dfbc0d | |
parent | 6bb2b082c94c96197daa3c161ec628fd18fd2041 (diff) | |
download | qutebrowser-eeb26a6aa8e9ddc7b48d656ea93dea987ee88c79.tar.gz qutebrowser-eeb26a6aa8e9ddc7b48d656ea93dea987ee88c79.zip |
Revert "Remove pkg_resources special casing for PyInstaller"
This reverts commit 6bb2b082c94c96197daa3c161ec628fd18fd2041.
I guess storing package data in qutebrowser/ would be the proper way,
but this doesn't actually work on macOS - there, the executable name is
already "qutebrowser"...
-rw-r--r-- | misc/qutebrowser.spec | 15 | ||||
-rw-r--r-- | qutebrowser/utils/utils.py | 20 |
2 files changed, 23 insertions, 12 deletions
diff --git a/misc/qutebrowser.spec b/misc/qutebrowser.spec index f7cff99f2..ffb17d371 100644 --- a/misc/qutebrowser.spec +++ b/misc/qutebrowser.spec @@ -13,17 +13,16 @@ block_cipher = None def get_data_files(): data_files = [ - ('../qutebrowser/html', 'qutebrowser/html'), - ('../qutebrowser/img', 'qutebrowser/img'), - ('../qutebrowser/javascript', 'qutebrowser/javascript'), - ('../qutebrowser/html/doc', 'qutebrowser/html/doc'), - ('../qutebrowser/git-commit-id', 'qutebrowser/'), - ('../qutebrowser/config/configdata.yml', 'qutebrowser/config'), + ('../qutebrowser/html', 'html'), + ('../qutebrowser/img', 'img'), + ('../qutebrowser/javascript', 'javascript'), + ('../qutebrowser/html/doc', 'html/doc'), + ('../qutebrowser/git-commit-id', '.'), + ('../qutebrowser/config/configdata.yml', 'config'), ] if os.path.exists(os.path.join('qutebrowser', '3rdparty', 'pdfjs')): - data_files.append( - ('../qutebrowser/3rdparty/pdfjs', 'qutebrowser/3rdparty/pdfjs')) + data_files.append(('../qutebrowser/3rdparty/pdfjs', '3rdparty/pdfjs')) else: print("Warning: excluding pdfjs as it's not present!") diff --git a/qutebrowser/utils/utils.py b/qutebrowser/utils/utils.py index 85d1612c7..4ae0c9cab 100644 --- a/qutebrowser/utils/utils.py +++ b/qutebrowser/utils/utils.py @@ -208,12 +208,24 @@ def read_file(filename: str, binary: bool = False) -> Any: if not binary and filename in _resource_cache: return _resource_cache[filename] - p = importlib_resources.files(qutebrowser) / filename + if hasattr(sys, 'frozen'): + # PyInstaller doesn't support pkg_resources :( + # https://github.com/pyinstaller/pyinstaller/wiki/FAQ#misc + fn = os.path.join(os.path.dirname(sys.executable), filename) + if binary: + f: IO + with open(fn, 'rb') as f: + return f.read() + else: + with open(fn, 'r', encoding='utf-8') as f: + return f.read() + else: + p = importlib_resources.files(qutebrowser) / filename - if binary: - return p.read_bytes() + if binary: + return p.read_bytes() - return p.read_text() + return p.read_text() def resource_filename(filename: str) -> str: |