diff options
Diffstat (limited to 'bin')
-rwxr-xr-x | bin/spack | 23 |
1 files changed, 23 insertions, 0 deletions
@@ -28,6 +28,7 @@ exit 1 from __future__ import print_function import os +import os.path import sys min_python3 = (3, 5) @@ -70,6 +71,28 @@ if "ruamel.yaml" in sys.modules: if "ruamel" in sys.modules: del sys.modules["ruamel"] +# The following code is here to avoid failures when updating +# the develop version, due to spurious argparse.pyc files remaining +# in the libs/spack/external directory, see: +# https://github.com/spack/spack/pull/25376 +# TODO: Remove in v0.18.0 or later +try: + import argparse +except ImportError: + argparse_pyc = os.path.join(spack_external_libs, 'argparse.pyc') + if not os.path.exists(argparse_pyc): + raise + try: + os.remove(argparse_pyc) + import argparse # noqa + except Exception: + msg = ('The file\n\n\t{0}\n\nis corrupted and cannot be deleted by Spack. ' + 'Either delete it manually or ask some administrator to ' + 'delete it for you.') + print(msg.format(argparse_pyc)) + sys.exit(1) + + import spack.main # noqa # Once we've set up the system path, run the spack main method |