summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Scheibel <scheibel1@llnl.gov>2015-11-11 18:04:22 -0800
committerPeter Scheibel <scheibel1@llnl.gov>2015-11-11 18:04:22 -0800
commit6d7b26d4e08c2ca29f2fe6ff32e63ebfd377d164 (patch)
tree203f945e749562f3b28a7ff7facbfd8224fb55a0
parent9474b8cdac433ccae4451c810fb7f4bb1bd1bd16 (diff)
downloadspack-6d7b26d4e08c2ca29f2fe6ff32e63ebfd377d164.tar.gz
spack-6d7b26d4e08c2ca29f2fe6ff32e63ebfd377d164.tar.bz2
spack-6d7b26d4e08c2ca29f2fe6ff32e63ebfd377d164.tar.xz
spack-6d7b26d4e08c2ca29f2fe6ff32e63ebfd377d164.zip
Insert lib/spack/external into sys.path. This avoids cases where the system
python install and lib/spack/external have the same library installed. This requires modifying the names of some modules in lib/spack/external in cases where both the system python and backported features of future python versions (i.e. after 2.6) are used (previously distinguished by "from external import X" and "import X").
-rwxr-xr-xbin/spack2
-rw-r--r--lib/spack/external/functools_backport.py (renamed from lib/spack/external/functools.py)0
-rw-r--r--lib/spack/external/ordereddict_backport.py (renamed from lib/spack/external/ordereddict.py)0
-rw-r--r--lib/spack/spack/cmd/activate.py2
-rw-r--r--lib/spack/spack/cmd/checksum.py2
-rw-r--r--lib/spack/spack/cmd/clean.py2
-rw-r--r--lib/spack/spack/cmd/compiler.py2
-rw-r--r--lib/spack/spack/cmd/config.py2
-rw-r--r--lib/spack/spack/cmd/create.py2
-rw-r--r--lib/spack/spack/cmd/deactivate.py2
-rw-r--r--lib/spack/spack/cmd/dependents.py2
-rw-r--r--lib/spack/spack/cmd/diy.py2
-rw-r--r--lib/spack/spack/cmd/env.py2
-rw-r--r--lib/spack/spack/cmd/extensions.py2
-rw-r--r--lib/spack/spack/cmd/fetch.py2
-rw-r--r--lib/spack/spack/cmd/find.py2
-rw-r--r--lib/spack/spack/cmd/graph.py2
-rw-r--r--lib/spack/spack/cmd/install.py2
-rw-r--r--lib/spack/spack/cmd/list.py2
-rw-r--r--lib/spack/spack/cmd/load.py2
-rw-r--r--lib/spack/spack/cmd/location.py2
-rw-r--r--lib/spack/spack/cmd/md5.py2
-rw-r--r--lib/spack/spack/cmd/mirror.py2
-rw-r--r--lib/spack/spack/cmd/module.py2
-rw-r--r--lib/spack/spack/cmd/patch.py2
-rw-r--r--lib/spack/spack/cmd/pkg.py2
-rw-r--r--lib/spack/spack/cmd/providers.py2
-rw-r--r--lib/spack/spack/cmd/python.py2
-rw-r--r--lib/spack/spack/cmd/reindex.py2
-rw-r--r--lib/spack/spack/cmd/restage.py2
-rw-r--r--lib/spack/spack/cmd/spec.py2
-rw-r--r--lib/spack/spack/cmd/stage.py2
-rw-r--r--lib/spack/spack/cmd/test-install.py2
-rw-r--r--lib/spack/spack/cmd/uninstall.py2
-rw-r--r--lib/spack/spack/cmd/unload.py2
-rw-r--r--lib/spack/spack/cmd/unuse.py2
-rw-r--r--lib/spack/spack/cmd/use.py2
-rw-r--r--lib/spack/spack/config.py6
-rw-r--r--lib/spack/spack/database.py4
-rw-r--r--lib/spack/spack/directory_layout.py2
-rw-r--r--lib/spack/spack/spec.py4
-rw-r--r--lib/spack/spack/test/python_version.py2
-rw-r--r--lib/spack/spack/version.py2
43 files changed, 46 insertions, 44 deletions
diff --git a/bin/spack b/bin/spack
index 127a85f6fe..f587e206db 100755
--- a/bin/spack
+++ b/bin/spack
@@ -38,6 +38,8 @@ SPACK_PREFIX = os.path.dirname(os.path.dirname(SPACK_FILE))
# Allow spack libs to be imported in our scripts
SPACK_LIB_PATH = os.path.join(SPACK_PREFIX, "lib", "spack")
sys.path.insert(0, SPACK_LIB_PATH)
+SPACK_EXTERNAL_LIBS = os.path.join(SPACK_LIB_PATH, "external")
+sys.path.insert(0, SPACK_EXTERNAL_LIBS)
# If there is no working directory, use the spack prefix.
try:
diff --git a/lib/spack/external/functools.py b/lib/spack/external/functools_backport.py
index 19f0903c82..19f0903c82 100644
--- a/lib/spack/external/functools.py
+++ b/lib/spack/external/functools_backport.py
diff --git a/lib/spack/external/ordereddict.py b/lib/spack/external/ordereddict_backport.py
index 8ddad1477e..8ddad1477e 100644
--- a/lib/spack/external/ordereddict.py
+++ b/lib/spack/external/ordereddict_backport.py
diff --git a/lib/spack/spack/cmd/activate.py b/lib/spack/spack/cmd/activate.py
index 1004f1f8e6..1e44948d24 100644
--- a/lib/spack/spack/cmd/activate.py
+++ b/lib/spack/spack/cmd/activate.py
@@ -22,7 +22,7 @@
# along with this program; if not, write to the Free Software Foundation,
# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
-from external import argparse
+import argparse
import llnl.util.tty as tty
import spack
import spack.cmd
diff --git a/lib/spack/spack/cmd/checksum.py b/lib/spack/spack/cmd/checksum.py
index 8a448450c2..c940d57781 100644
--- a/lib/spack/spack/cmd/checksum.py
+++ b/lib/spack/spack/cmd/checksum.py
@@ -24,7 +24,7 @@
##############################################################################
import os
import re
-from external import argparse
+import argparse
import hashlib
from pprint import pprint
from subprocess import CalledProcessError
diff --git a/lib/spack/spack/cmd/clean.py b/lib/spack/spack/cmd/clean.py
index c20136ebe5..e303b3d634 100644
--- a/lib/spack/spack/cmd/clean.py
+++ b/lib/spack/spack/cmd/clean.py
@@ -22,7 +22,7 @@
# along with this program; if not, write to the Free Software Foundation,
# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
-from external import argparse
+import argparse
import llnl.util.tty as tty
diff --git a/lib/spack/spack/cmd/compiler.py b/lib/spack/spack/cmd/compiler.py
index 2a64dc914e..3173d11070 100644
--- a/lib/spack/spack/cmd/compiler.py
+++ b/lib/spack/spack/cmd/compiler.py
@@ -22,7 +22,7 @@
# along with this program; if not, write to the Free Software Foundation,
# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
-from external import argparse
+import argparse
import llnl.util.tty as tty
from llnl.util.tty.color import colorize
diff --git a/lib/spack/spack/cmd/config.py b/lib/spack/spack/cmd/config.py
index 8c18f88b64..78972a8be0 100644
--- a/lib/spack/spack/cmd/config.py
+++ b/lib/spack/spack/cmd/config.py
@@ -23,7 +23,7 @@
# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
import sys
-from external import argparse
+import argparse
import llnl.util.tty as tty
diff --git a/lib/spack/spack/cmd/create.py b/lib/spack/spack/cmd/create.py
index 46e6bcec14..05cf170e39 100644
--- a/lib/spack/spack/cmd/create.py
+++ b/lib/spack/spack/cmd/create.py
@@ -27,7 +27,7 @@ import os
import hashlib
import re
-from external.ordereddict import OrderedDict
+from ordereddict_backport import OrderedDict
import llnl.util.tty as tty
from llnl.util.filesystem import mkdirp
diff --git a/lib/spack/spack/cmd/deactivate.py b/lib/spack/spack/cmd/deactivate.py
index 1f0e303cdf..5a2b353fa2 100644
--- a/lib/spack/spack/cmd/deactivate.py
+++ b/lib/spack/spack/cmd/deactivate.py
@@ -22,7 +22,7 @@
# along with this program; if not, write to the Free Software Foundation,
# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
-from external import argparse
+import argparse
import llnl.util.tty as tty
import spack
diff --git a/lib/spack/spack/cmd/dependents.py b/lib/spack/spack/cmd/dependents.py
index 652f243b98..129a4eeb23 100644
--- a/lib/spack/spack/cmd/dependents.py
+++ b/lib/spack/spack/cmd/dependents.py
@@ -22,7 +22,7 @@
# along with this program; if not, write to the Free Software Foundation,
# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
-from external import argparse
+import argparse
import llnl.util.tty as tty
diff --git a/lib/spack/spack/cmd/diy.py b/lib/spack/spack/cmd/diy.py
index 9f8a6d39db..d6bd1fbb79 100644
--- a/lib/spack/spack/cmd/diy.py
+++ b/lib/spack/spack/cmd/diy.py
@@ -24,7 +24,7 @@
##############################################################################
import sys
import os
-from external import argparse
+import argparse
import llnl.util.tty as tty
diff --git a/lib/spack/spack/cmd/env.py b/lib/spack/spack/cmd/env.py
index bde76b5daf..ae8e95491e 100644
--- a/lib/spack/spack/cmd/env.py
+++ b/lib/spack/spack/cmd/env.py
@@ -23,7 +23,7 @@
# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
import os
-from external import argparse
+import argparse
import llnl.util.tty as tty
import spack.cmd
import spack.build_environment as build_env
diff --git a/lib/spack/spack/cmd/extensions.py b/lib/spack/spack/cmd/extensions.py
index 7cadc424b0..86dec7b9e7 100644
--- a/lib/spack/spack/cmd/extensions.py
+++ b/lib/spack/spack/cmd/extensions.py
@@ -23,7 +23,7 @@
# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
import sys
-from external import argparse
+import argparse
import llnl.util.tty as tty
from llnl.util.tty.colify import colify
diff --git a/lib/spack/spack/cmd/fetch.py b/lib/spack/spack/cmd/fetch.py
index 0ccebd9486..1dd8703daf 100644
--- a/lib/spack/spack/cmd/fetch.py
+++ b/lib/spack/spack/cmd/fetch.py
@@ -22,7 +22,7 @@
# along with this program; if not, write to the Free Software Foundation,
# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
-from external import argparse
+import argparse
import spack
import spack.cmd
diff --git a/lib/spack/spack/cmd/find.py b/lib/spack/spack/cmd/find.py
index 0b0dd6ef6f..05fa620c59 100644
--- a/lib/spack/spack/cmd/find.py
+++ b/lib/spack/spack/cmd/find.py
@@ -25,7 +25,7 @@
import sys
import collections
import itertools
-from external import argparse
+import argparse
from StringIO import StringIO
import llnl.util.tty as tty
diff --git a/lib/spack/spack/cmd/graph.py b/lib/spack/spack/cmd/graph.py
index cb93a1b543..586a02c53b 100644
--- a/lib/spack/spack/cmd/graph.py
+++ b/lib/spack/spack/cmd/graph.py
@@ -22,7 +22,7 @@
# along with this program; if not, write to the Free Software Foundation,
# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
-from external import argparse
+import argparse
import spack
import spack.cmd
diff --git a/lib/spack/spack/cmd/install.py b/lib/spack/spack/cmd/install.py
index 836a6260c8..e4338e222f 100644
--- a/lib/spack/spack/cmd/install.py
+++ b/lib/spack/spack/cmd/install.py
@@ -22,7 +22,7 @@
# along with this program; if not, write to the Free Software Foundation,
# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
-from external import argparse
+import argparse
import llnl.util.tty as tty
diff --git a/lib/spack/spack/cmd/list.py b/lib/spack/spack/cmd/list.py
index 1f0978a18e..0b55d9fb7b 100644
--- a/lib/spack/spack/cmd/list.py
+++ b/lib/spack/spack/cmd/list.py
@@ -24,7 +24,7 @@
##############################################################################
import sys
import llnl.util.tty as tty
-from external import argparse
+import argparse
from llnl.util.tty.colify import colify
import spack
diff --git a/lib/spack/spack/cmd/load.py b/lib/spack/spack/cmd/load.py
index 06574d9725..5bc6b15784 100644
--- a/lib/spack/spack/cmd/load.py
+++ b/lib/spack/spack/cmd/load.py
@@ -22,7 +22,7 @@
# along with this program; if not, write to the Free Software Foundation,
# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
-from external import argparse
+import argparse
import spack.modules
description ="Add package to environment using modules."
diff --git a/lib/spack/spack/cmd/location.py b/lib/spack/spack/cmd/location.py
index e8e9c3f277..6fbab9782f 100644
--- a/lib/spack/spack/cmd/location.py
+++ b/lib/spack/spack/cmd/location.py
@@ -24,7 +24,7 @@
##############################################################################
import os
import sys
-from external import argparse
+import argparse
import llnl.util.tty as tty
from llnl.util.filesystem import join_path
diff --git a/lib/spack/spack/cmd/md5.py b/lib/spack/spack/cmd/md5.py
index dfa1be412b..8be0a7ad4c 100644
--- a/lib/spack/spack/cmd/md5.py
+++ b/lib/spack/spack/cmd/md5.py
@@ -24,7 +24,7 @@
##############################################################################
import os
import hashlib
-from external import argparse
+import argparse
import llnl.util.tty as tty
from llnl.util.filesystem import *
diff --git a/lib/spack/spack/cmd/mirror.py b/lib/spack/spack/cmd/mirror.py
index 2356170a9a..4599944f1c 100644
--- a/lib/spack/spack/cmd/mirror.py
+++ b/lib/spack/spack/cmd/mirror.py
@@ -26,7 +26,7 @@ import os
import sys
from datetime import datetime
-from external import argparse
+import argparse
import llnl.util.tty as tty
from llnl.util.tty.colify import colify
diff --git a/lib/spack/spack/cmd/module.py b/lib/spack/spack/cmd/module.py
index 654b0cb2fa..c3daed6402 100644
--- a/lib/spack/spack/cmd/module.py
+++ b/lib/spack/spack/cmd/module.py
@@ -25,7 +25,7 @@
import sys
import os
import shutil
-from external import argparse
+import argparse
import llnl.util.tty as tty
from llnl.util.lang import partition_list
diff --git a/lib/spack/spack/cmd/patch.py b/lib/spack/spack/cmd/patch.py
index a6556c4828..2356583b07 100644
--- a/lib/spack/spack/cmd/patch.py
+++ b/lib/spack/spack/cmd/patch.py
@@ -22,7 +22,7 @@
# along with this program; if not, write to the Free Software Foundation,
# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
-from external import argparse
+import argparse
import spack.cmd
import spack
diff --git a/lib/spack/spack/cmd/pkg.py b/lib/spack/spack/cmd/pkg.py
index 055b7c2062..ae5efd9d9c 100644
--- a/lib/spack/spack/cmd/pkg.py
+++ b/lib/spack/spack/cmd/pkg.py
@@ -24,7 +24,7 @@
##############################################################################
import os
-from external import argparse
+import argparse
import llnl.util.tty as tty
from llnl.util.tty.colify import colify
diff --git a/lib/spack/spack/cmd/providers.py b/lib/spack/spack/cmd/providers.py
index 2bcdc9fba2..1a652c82d1 100644
--- a/lib/spack/spack/cmd/providers.py
+++ b/lib/spack/spack/cmd/providers.py
@@ -23,7 +23,7 @@
# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
import os
-from external import argparse
+import argparse
from llnl.util.tty.colify import colify
diff --git a/lib/spack/spack/cmd/python.py b/lib/spack/spack/cmd/python.py
index 7bd2e45ce0..15c45654c2 100644
--- a/lib/spack/spack/cmd/python.py
+++ b/lib/spack/spack/cmd/python.py
@@ -25,7 +25,7 @@
import os
import sys
import code
-from external import argparse
+import argparse
import platform
import spack
diff --git a/lib/spack/spack/cmd/reindex.py b/lib/spack/spack/cmd/reindex.py
index b584729ea4..c0008930c4 100644
--- a/lib/spack/spack/cmd/reindex.py
+++ b/lib/spack/spack/cmd/reindex.py
@@ -22,7 +22,7 @@
# along with this program; if not, write to the Free Software Foundation,
# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
-from external import argparse
+import argparse
import spack
description = "Rebuild Spack's package database."
diff --git a/lib/spack/spack/cmd/restage.py b/lib/spack/spack/cmd/restage.py
index e735a12c32..9230cf5a1a 100644
--- a/lib/spack/spack/cmd/restage.py
+++ b/lib/spack/spack/cmd/restage.py
@@ -22,7 +22,7 @@
# along with this program; if not, write to the Free Software Foundation,
# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
-from external import argparse
+import argparse
import llnl.util.tty as tty
diff --git a/lib/spack/spack/cmd/spec.py b/lib/spack/spack/cmd/spec.py
index 407519313c..af7ec1b36c 100644
--- a/lib/spack/spack/cmd/spec.py
+++ b/lib/spack/spack/cmd/spec.py
@@ -22,7 +22,7 @@
# along with this program; if not, write to the Free Software Foundation,
# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
-from external import argparse
+import argparse
import spack.cmd
import llnl.util.tty as tty
diff --git a/lib/spack/spack/cmd/stage.py b/lib/spack/spack/cmd/stage.py
index f3dc97be17..09cf0e1a1c 100644
--- a/lib/spack/spack/cmd/stage.py
+++ b/lib/spack/spack/cmd/stage.py
@@ -23,7 +23,7 @@
# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
import os
-from external import argparse
+import argparse
import llnl.util.tty as tty
import spack
diff --git a/lib/spack/spack/cmd/test-install.py b/lib/spack/spack/cmd/test-install.py
index 68b761d5dc..ba0cb39baf 100644
--- a/lib/spack/spack/cmd/test-install.py
+++ b/lib/spack/spack/cmd/test-install.py
@@ -22,7 +22,7 @@
# along with this program; if not, write to the Free Software Foundation,
# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
-from external import argparse
+import argparse
import xml.etree.ElementTree as ET
import itertools
import re
diff --git a/lib/spack/spack/cmd/uninstall.py b/lib/spack/spack/cmd/uninstall.py
index e80f2d2636..93575e005d 100644
--- a/lib/spack/spack/cmd/uninstall.py
+++ b/lib/spack/spack/cmd/uninstall.py
@@ -23,7 +23,7 @@
# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
import sys
-from external import argparse
+import argparse
import llnl.util.tty as tty
from llnl.util.tty.colify import colify
diff --git a/lib/spack/spack/cmd/unload.py b/lib/spack/spack/cmd/unload.py
index 6442c48cb1..24e49b3f24 100644
--- a/lib/spack/spack/cmd/unload.py
+++ b/lib/spack/spack/cmd/unload.py
@@ -22,7 +22,7 @@
# along with this program; if not, write to the Free Software Foundation,
# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
-from external import argparse
+import argparse
import spack.modules
description ="Remove package from environment using module."
diff --git a/lib/spack/spack/cmd/unuse.py b/lib/spack/spack/cmd/unuse.py
index 2a7229a3a0..7f0b384ea0 100644
--- a/lib/spack/spack/cmd/unuse.py
+++ b/lib/spack/spack/cmd/unuse.py
@@ -22,7 +22,7 @@
# along with this program; if not, write to the Free Software Foundation,
# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
-from external import argparse
+import argparse
import spack.modules
description ="Remove package from environment using dotkit."
diff --git a/lib/spack/spack/cmd/use.py b/lib/spack/spack/cmd/use.py
index e34c194739..4990fea2f8 100644
--- a/lib/spack/spack/cmd/use.py
+++ b/lib/spack/spack/cmd/use.py
@@ -22,7 +22,7 @@
# along with this program; if not, write to the Free Software Foundation,
# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
-from external import argparse
+import argparse
import spack.modules
description ="Add package to environment using dotkit."
diff --git a/lib/spack/spack/config.py b/lib/spack/spack/config.py
index 3e91958c2c..41afe8b232 100644
--- a/lib/spack/spack/config.py
+++ b/lib/spack/spack/config.py
@@ -90,12 +90,12 @@ import os
import exceptions
import sys
-from external.ordereddict import OrderedDict
+from ordereddict_backport import OrderedDict
from llnl.util.lang import memoized
import spack.error
-from external import yaml
-from external.yaml.error import MarkedYAMLError
+import yaml
+from yaml.error import MarkedYAMLError
import llnl.util.tty as tty
from llnl.util.filesystem import mkdirp
diff --git a/lib/spack/spack/database.py b/lib/spack/spack/database.py
index e0c14a0455..908ffc7fa4 100644
--- a/lib/spack/spack/database.py
+++ b/lib/spack/spack/database.py
@@ -43,8 +43,8 @@ import os
import time
import socket
-from external import yaml
-from external.yaml.error import MarkedYAMLError, YAMLError
+import yaml
+from yaml.error import MarkedYAMLError, YAMLError
import llnl.util.tty as tty
from llnl.util.filesystem import *
diff --git a/lib/spack/spack/directory_layout.py b/lib/spack/spack/directory_layout.py
index da8f4187cc..918405cab6 100644
--- a/lib/spack/spack/directory_layout.py
+++ b/lib/spack/spack/directory_layout.py
@@ -29,7 +29,7 @@ import hashlib
import shutil
import glob
import tempfile
-from external import yaml
+import yaml
import llnl.util.tty as tty
from llnl.util.filesystem import join_path, mkdirp
diff --git a/lib/spack/spack/spec.py b/lib/spack/spack/spec.py
index 7b79feb311..92880e9cbf 100644
--- a/lib/spack/spack/spec.py
+++ b/lib/spack/spack/spec.py
@@ -96,8 +96,8 @@ import hashlib
import base64
from StringIO import StringIO
from operator import attrgetter
-from external import yaml
-from external.yaml.error import MarkedYAMLError
+import yaml
+from yaml.error import MarkedYAMLError
import llnl.util.tty as tty
from llnl.util.lang import *
diff --git a/lib/spack/spack/test/python_version.py b/lib/spack/spack/test/python_version.py
index 5779d31ed2..ba7bab6f4b 100644
--- a/lib/spack/spack/test/python_version.py
+++ b/lib/spack/spack/test/python_version.py
@@ -34,7 +34,7 @@ import re
import llnl.util.tty as tty
-from external import pyqver2
+import pyqver2
import spack
spack_max_version = (2,6)
diff --git a/lib/spack/spack/version.py b/lib/spack/spack/version.py
index 35db05e018..ffce2d1ff8 100644
--- a/lib/spack/spack/version.py
+++ b/lib/spack/spack/version.py
@@ -48,7 +48,7 @@ import sys
import re
from bisect import bisect_left
from functools import wraps
-from external.functools import total_ordering
+from functools_backport import total_ordering
# Valid version characters
VALID_VERSION = r'[A-Za-z0-9_.-]'