# This Source Code Form is subject to the terms of the Mozilla Public # License, v. 2.0. If a copy of the MPL was not distributed with this # file, You can obtain one at http://mozilla.org/MPL/2.0/. """ Installs dependencies at runtime to simplify deployment.
This module tries to make sure we have all dependencies installed on
all our environments. """ import os import subprocess import sys
def install_reqs(): """We install requirements one by one, with no cache, and in isolated mode.""" try: import yaml # NOQA
returnFalse except Exception: # we're detecting here that this is running in Taskcluster # by checking for the presence of the mozfile directory # that was decompressed from target.condprof.tests.tar.gz
run_in_ci = os.path.exists(os.path.join(TOPDIR, "mozfile"))
# On Python 2 we only install what's required for condprof.client # On Python 3 it's the full thing ifnot run_in_ci:
req_files = PY3 and ["base.txt", "local.txt"] or ["local-client.txt"] else:
req_files = PY3 and ["base.txt", "ci.txt"] or ["ci-client.txt"]
for req_file in req_files:
req_file = os.path.join(TOPDIR, "requirements", req_file)
with open(req_file) as f:
reqs = [
req for req in f.read().split("\n") if req.strip() != ""andnot req.startswith("#")
] for req in reqs:
subprocess.check_call(
[
sys.executable, "-m", "pip", "install", "--no-cache-dir", "--isolated", "--find-links", "https://pypi.pub.build.mozilla.org/pub/",
req,
]
)
returnTrue
def check(): """Called by the runner.
The check function will restart the app after
all deps have been installed. """ if install_reqs():
os.execl(sys.executable, sys.executable, *sys.argv)
os._exit(0)
¤ Dauer der Verarbeitung: 0.14 Sekunden
(vorverarbeitet)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.