summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Bruhin <me@the-compiler.org>2021-01-26 14:31:01 +0100
committerFlorian Bruhin <me@the-compiler.org>2021-01-26 14:31:01 +0100
commiteeb26a6aa8e9ddc7b48d656ea93dea987ee88c79 (patch)
tree0bd35e53a7ada85cadb628524e36fe0b91dfbc0d
parent6bb2b082c94c96197daa3c161ec628fd18fd2041 (diff)
downloadqutebrowser-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.spec15
-rw-r--r--qutebrowser/utils/utils.py20
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: