From 067a230294d80198f1fbca145b96f78e1723ebc9 Mon Sep 17 00:00:00 2001 From: Jason Grout Date: Wed, 27 Oct 2021 03:26:06 -0700 Subject: [PATCH] Check if site.getuserbase() exists Apparently virtualenv often does not have site.getuserbase(), so we check for its existence first. Fixes #246 --- jupyter_core/paths.py | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/jupyter_core/paths.py b/jupyter_core/paths.py index 39df6b4..4681b0e 100644 --- a/jupyter_core/paths.py +++ b/jupyter_core/paths.py @@ -168,7 +168,13 @@ def jupyter_path(*subdirs): # Next is environment or user, depending on the JUPYTER_PREFER_ENV_PATH flag user = [jupyter_data_dir()] if site.ENABLE_USER_SITE: - userdir = os.path.join(site.getuserbase(), 'share', 'jupyter') + # Check if site.getuserbase() exists to be compatible with virtualenv, + # which often does not have this method. + if hasattr(site, 'getuserbase'): + userbase = site.getuserbase() + else: + userbase = site.USER_BASE + userdir = os.path.join(userbase, 'share', 'jupyter') if userdir not in user: user.append(userdir) @@ -231,7 +237,14 @@ def jupyter_config_path(): # Next is environment or user, depending on the JUPYTER_PREFER_ENV_PATH flag user = [jupyter_config_dir()] if site.ENABLE_USER_SITE: - userdir = os.path.join(site.getuserbase(), 'etc', 'jupyter') + # Check if site.getuserbase() exists to be compatible with virtualenv, + # which often does not have this method. + if hasattr(site, 'getuserbase'): + userbase = site.getuserbase() + else: + userbase = site.USER_BASE + + userdir = os.path.join(userbase, 'etc', 'jupyter') if userdir not in user: user.append(userdir)