From 758f553687369c346aacb8790deb5aaff86205ee Mon Sep 17 00:00:00 2001 From: Nate Prewitt Date: Sat, 9 Dec 2017 13:05:19 -0800 Subject: [PATCH] use current directory if project directory doesn't exist --- pipenv/cli.py | 11 +++++++---- pipenv/project.py | 5 ++++- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/pipenv/cli.py b/pipenv/cli.py index dcd4db1f..bb98293c 100644 --- a/pipenv/cli.py +++ b/pipenv/cli.py @@ -123,7 +123,10 @@ project = Project() def load_dot_env(): if not PIPENV_DONT_LOAD_ENV: - denv = dotenv.find_dotenv(PIPENV_DOTENV_LOCATION or os.sep.join([project.project_directory, '.env'])) + # If the project doesn't exist yet, check current directory for a .env file + project_directory = project.project_directory or '.' + + denv = dotenv.find_dotenv(PIPENV_DOTENV_LOCATION or os.sep.join([project_directory, '.env'])) if os.path.isfile(denv): click.echo(crayons.normal('Loading .env environment variables…', bold=True), err=True) dotenv.load_dotenv(denv, override=True) @@ -2056,6 +2059,9 @@ def lock(three=None, python=False, verbose=False, requirements=False, dev=False, def do_shell(three=None, python=False, fancy=False, shell_args=None): + # Ensure that virtualenv is available. + ensure_project(three=three, python=python, validate=False) + # Set an environment variable, so we know we're in the environment. os.environ['PIPENV_ACTIVE'] = '1' @@ -2177,9 +2183,6 @@ def shell(three=None, python=False, fancy=False, shell_args=None, anyway=False): sys.exit(1) - # Ensure that virtualenv is available. - # ensure_project(three=three, python=python, validate=False) - # Load .env file. load_dot_env() diff --git a/pipenv/project.py b/pipenv/project.py index d3f18a40..7b5f1592 100644 --- a/pipenv/project.py +++ b/pipenv/project.py @@ -109,7 +109,10 @@ class Project(object): @property def project_directory(self): - return os.path.abspath(os.path.join(self.pipfile_location, os.pardir)) + if self.pipfile_location is not None: + return os.path.abspath(os.path.join(self.pipfile_location, os.pardir)) + else: + return None @property def requirements_exists(self):