mirror of
https://github.com/tahoe-lafs/tahoe-lafs.git
synced 2025-02-21 02:01:31 +00:00
Merge pull request #661 from crwood/3259.frozen-pkg_resources-fix
Skip pkg_resources.get_distribution call if frozen Fixes: ticket:3259
This commit is contained in:
commit
91dd27b0f9
@ -51,6 +51,11 @@ test_script:
|
||||
# to put the Python version you want to use on PATH.
|
||||
- |
|
||||
%PYTHON%\Scripts\tox.exe -e coverage
|
||||
%PYTHON%\Scripts\tox.exe -e pyinstaller
|
||||
# To verify that the resultant PyInstaller-generated binary executes
|
||||
# cleanly (i.e., that it terminates with an exit code of 0 and isn't
|
||||
# failing due to import/packaging-related errors, etc.).
|
||||
- dist\Tahoe-LAFS\tahoe.exe --version
|
||||
|
||||
after_test:
|
||||
# This builds the main tahoe wheel, and wheels for all dependencies.
|
||||
|
@ -30,6 +30,7 @@ workflows:
|
||||
|
||||
# Other assorted tasks and configurations
|
||||
- "lint"
|
||||
- "pyinstaller"
|
||||
- "deprecations"
|
||||
- "c-locale"
|
||||
# Any locale other than C or UTF-8.
|
||||
@ -87,6 +88,31 @@ jobs:
|
||||
command: |
|
||||
~/.local/bin/tox -e codechecks
|
||||
|
||||
pyinstaller:
|
||||
docker:
|
||||
- image: "circleci/python:2"
|
||||
|
||||
steps:
|
||||
- "checkout"
|
||||
|
||||
- run:
|
||||
name: "Install tox"
|
||||
command: |
|
||||
pip install --user tox
|
||||
|
||||
- run:
|
||||
name: "Make PyInstaller executable"
|
||||
command: |
|
||||
~/.local/bin/tox -e pyinstaller
|
||||
|
||||
- run:
|
||||
# To verify that the resultant PyInstaller-generated binary executes
|
||||
# cleanly (i.e., that it terminates with an exit code of 0 and isn't
|
||||
# failing due to import/packaging-related errors, etc.).
|
||||
name: "Test PyInstaller executable"
|
||||
command: |
|
||||
dist/Tahoe-LAFS/tahoe --version
|
||||
|
||||
debian-9: &DEBIAN
|
||||
docker:
|
||||
- image: "tahoelafsci/debian:9"
|
||||
|
@ -29,6 +29,10 @@ script:
|
||||
else
|
||||
tox -e ${T}
|
||||
fi
|
||||
# To verify that the resultant PyInstaller-generated binary executes
|
||||
# cleanly (i.e., that it terminates with an exit code of 0 and isn't
|
||||
# failing due to import/packaging-related errors, etc.).
|
||||
if [ "${T}" = "pyinstaller" ]; then dist/Tahoe-LAFS/tahoe --version; fi
|
||||
|
||||
after_success:
|
||||
- if [ "${T}" = "coverage" ]; then codecov; fi
|
||||
|
0
newsfragments/3259.minor
Normal file
0
newsfragments/3259.minor
Normal file
@ -23,11 +23,21 @@ from .util import (
|
||||
verlib,
|
||||
)
|
||||
|
||||
_INSTALL_REQUIRES = list(
|
||||
str(req)
|
||||
for req
|
||||
in pkg_resources.get_distribution(__appname__).requires()
|
||||
)
|
||||
if getattr(sys, 'frozen', None):
|
||||
# "Frozen" python interpreters (i.e., standalone executables
|
||||
# generated by PyInstaller and other, similar utilities) run
|
||||
# independently of a traditional setuptools-based packaging
|
||||
# environment, and so pkg_resources.get_distribution() cannot be
|
||||
# used in such cases to gather a list of requirements at runtime
|
||||
# (and because a frozen application is one that has already been
|
||||
# "installed", an empty list suffices here).
|
||||
_INSTALL_REQUIRES = []
|
||||
else:
|
||||
_INSTALL_REQUIRES = list(
|
||||
str(req)
|
||||
for req
|
||||
in pkg_resources.get_distribution(__appname__).requires()
|
||||
)
|
||||
|
||||
class PackagingError(EnvironmentError):
|
||||
"""
|
||||
|
4
tox.ini
4
tox.ini
@ -185,7 +185,9 @@ deps =
|
||||
# Setting PYTHONHASHSEED to a known value assists with reproducible builds.
|
||||
# See https://pyinstaller.readthedocs.io/en/stable/advanced-topics.html#creating-a-reproducible-build
|
||||
setenv=PYTHONHASHSEED=1
|
||||
commands=pyinstaller -y --clean pyinstaller.spec
|
||||
commands=
|
||||
pip freeze
|
||||
pyinstaller -y --clean pyinstaller.spec
|
||||
|
||||
[testenv:tarballs]
|
||||
deps =
|
||||
|
Loading…
x
Reference in New Issue
Block a user