diff --git a/pipenv/cli.py b/pipenv/cli.py index 0224ba47..e6a01b3e 100644 --- a/pipenv/cli.py +++ b/pipenv/cli.py @@ -1688,7 +1688,7 @@ def install( if requirements: click.echo(crayons.normal(u'Requirements file provided! Importing into Pipfile…', bold=True), err=True) - import_requirements(r=requirements, dev=dev) + import_requirements(r=project.path_to(requirements), dev=dev) if code: click.echo(crayons.normal(u'Discovering imports from local codebase…', bold=True)) @@ -2127,7 +2127,7 @@ def check(three=None, python=False, unused=False, style=False, args=None): args = [] if style: - sys.argv = ['magic', style] + list(args) + sys.argv = ['magic', project.path_to(style)] + list(args) flake8.main.cli.main() exit() diff --git a/pipenv/project.py b/pipenv/project.py index a2be9e5b..6dd1dfc9 100644 --- a/pipenv/project.py +++ b/pipenv/project.py @@ -35,18 +35,25 @@ class Project(object): self._proper_names_location = None self._pipfile_location = None self._requirements_location = None + self._original_dir = None # Hack to skip this during pipenv run, or -r. if ( - ('run' not in sys.argv) or - ('-r' not in sys.argv) or - ('--requirements' not in sys.argv) + ('run' not in sys.argv) ): try: + self._original_dir = os.path.abspath(os.curdir) os.chdir(self.project_directory) except (TypeError, AttributeError): pass + def path_to(self, p): + """Returns the absolute path to a given relative path.""" + if os.path.isabs(p): + return p + + return os.sep.join([self._original_dir, p]) + @property def name(self): if self._name is None: