In the case of setuptools/sqlalchemy conflict, explain the issue
authorAsheesh Laroia <asheesh@asheesh.org>
Mon, 2 Dec 2013 17:36:30 +0000 (12:36 -0500)
committerChristopher Allan Webber <cwebber@dustycloud.org>
Mon, 2 Dec 2013 18:13:31 +0000 (12:13 -0600)
This commit tri-licensed under:
  CC0 1.0, AGPLv3 or later (at your option), and Apache License 2.0

setup.py

index cf3c2018ed8327d32597e1c41ffbc2b416c0413f..3d84065b34aba75f61ff4e21296abc2bad3668f1 100644 (file)
--- a/setup.py
+++ b/setup.py
@@ -32,8 +32,8 @@ def get_version():
         raise RuntimeError("Unable to find version string in %s." %
                            VERSIONFILE)
 
-
-setup(
+try:
+    setup(
     name="mediagoblin",
     version=get_version(),
     packages=find_packages(exclude=['ez_setup', 'examples', 'tests']),
@@ -107,3 +107,17 @@ setup(
         "Topic :: Internet :: WWW/HTTP :: Dynamic Content"
         ],
     )
+except TypeError, e:
+    # Check if the problem is caused by the sqlalchemy/setuptools conflict
+    msg_as_str = str(e)
+    if not (msg_as_str == 'dist must be a Distribution instance'):
+        raise
+
+    # If so, tell the user it is OK to just run the script again.
+    print "\n\n---------- NOTE ----------"
+    print "The setup.py command you ran failed."
+    print ""
+    print ("It is a known possible failure. Just run it again. It works the "
+           "second time.")
+    import sys
+    sys.exit(1)