[tor-commits] [stem/master] Use site-packages for our PYTHONPATH

atagar at torproject.org atagar at torproject.org
Sun Apr 5 00:37:31 UTC 2020


commit cc492696ca89f9f0ebe481f2f7a38a40eff1d893
Author: Damian Johnson <atagar at torproject.org>
Date:   Fri Apr 3 19:18:15 2020 -0700

    Use site-packages for our PYTHONPATH
    
    God I hate setuptools. Jenkins now fails with...
    
      The installation directory you specified (via --install-dir, --prefix, or the
      distutils default setting) was:
    
        /tmp/stem_test/lib/python3.7/site-packages/
    
      and your PYTHONPATH environment variable currently contains:
    
        '/tmp/stem_test'
---
 test/integ/installation.py | 22 ++++++++++++++++++++--
 1 file changed, 20 insertions(+), 2 deletions(-)

diff --git a/test/integ/installation.py b/test/integ/installation.py
index 01c99caa..fbf7267e 100644
--- a/test/integ/installation.py
+++ b/test/integ/installation.py
@@ -6,6 +6,7 @@ import glob
 import os
 import platform
 import shutil
+import site
 import sys
 import tarfile
 import time
@@ -70,15 +71,32 @@ class TestInstallation(unittest.TestCase):
     install.
     """
 
+    # Some systems fail installation unless our PYTHONPATH cites the
+    # site-packages that will be created at this destination. Unfortunately
+    # this can vary so attempting to determine it from site.getsitepackages().
+    # For example...
+    #
+    #   /tmp/stem_test/lib/python3.7/site-packages/
+
+    site_packages = site.getsitepackages()
+
+    if site_packages and site_packages[0].count(os.path.sep) >= 3:
+      python_path = os.path.sep.join([BASE_INSTALL_PATH] + site_packages[0].split(os.path.sep)[-3:])
+
+      if not os.path.exists(python_path):
+        os.makedirs(python_path)
+    else:
+      python_path = ''
+
     try:
       try:
-        stem.util.system.call('%s setup.py install --prefix %s' % (PYTHON_EXE, BASE_INSTALL_PATH), timeout = 60, cwd = test.STEM_BASE, env = {'PYTHONPATH': BASE_INSTALL_PATH})
+        stem.util.system.call('%s setup.py install --prefix %s' % (PYTHON_EXE, BASE_INSTALL_PATH), timeout = 60, cwd = test.STEM_BASE, env = {'PYTHONPATH': python_path})
         stem.util.system.call('%s setup.py clean --all' % PYTHON_EXE, timeout = 60, cwd = test.STEM_BASE)  # tidy up the build directory
 
         if platform.python_implementation() == 'PyPy':
           site_packages_paths = glob.glob('%s/site-packages' % BASE_INSTALL_PATH)
         else:
-          site_packages_paths = glob.glob('%s/lib*/*/site-packages/*' % BASE_INSTALL_PATH)
+          site_packages_paths = glob.glob('%s/lib*/*/site-packages/stem-*' % BASE_INSTALL_PATH)
       except stem.util.system.CallError as exc:
         msg = ["Unable to install with '%s': %s" % (exc.command, exc.msg)]
 



More information about the tor-commits mailing list