hooks into a change in PWD to automatically launch a Pipenv shell for your Pipenv project
note: this project was previously maintained by @kennethreitz
With Fisher
fisher install sentriz/fish-pipenvWith Fundle
Add:
fundle plugin "sentriz/fish-pipenv"to your config.fish (create one if it doesn't exist), reload your shell and run:
fundle installWith Oh My Fish
omf install https://github.com/sentriz/fish-pipenvSuitable for your ~/.config/fish/config.fish
# set if your term supports `pipenv shell --fancy`
set pipenv_fish_fancy yesAfter installing pipenv, running the $ pipenv command may yield the following error:
Install http://docs.pipenv.org/en/latest/ to use this package.
The problem is that, the pipenv package rightly could not find the pipenv command. The situation with
fish shell is that it executes scripts in the /Users/user/.config/fish/config.d folder before
executing config.fish and the pipenv package creates a link in the config.d folder hence it is
executed before config.fish.
Now depending on how you installed pipenv or how soon your $PATH is loaded you could be faced with the
above error.
-
You could install pipenv with the command
$ pip3 install pipenv. Pipenv will then be installed in/usr/local/bin. On some systems the folder/usr/local/binis added to $PATH by the system which means that it will be available before fish goes fishing for scripts in/Users/user/.config/fish/config.d -
Or you could create a file say 000-env.fish (or whatever you want to call it), and place it in
/Users/user/.config/fish/config.d. In this file set the path to the folder where pipenv was installed. E.g if pipenv was installed via pipsi, then the command will be something likeset -x PATH /Users/user/.local/bin $PATHIf pipenv was installed via
$ pip install pipenv, then note that pip (python2) now puts its executables in/usr/local/opt/python/libexec/bin.The
000preface is to ensure that, that script will be executed first before the others in config.d. You don't have to prefix the file with000it is abitrary. Just give it a name that places it at the top of the pile. -
Or assuming you also have fish-pyenv you can add a universal variable to your
fish_user_pathsfollowing mhugbin:set -U fish_user_paths ~/.pyenv/shims $fish_user_paths
See #1
