sentriz/fish-pipenv

pipenv command now prompts me to install latest to use plugin

Pilgrim1379 opened this issue ยท 8 comments

I've just upgraded to the latest pipenv plugin for fish shell. Since the upgrade all pipenv commands prompt me with the following
Install http://docs.pipenv.org/en/latest/ to use this plugin.
I already have pipenv installed to the latest. The output of command -s pipenv is /Users/napo/.pyenv/shims/pipenv

As it stands, I can't use pipenv.

I'm not sure why you're getting this error.

So I uninstalled the fish plugin with fisher rm pipenv, restarted the shell and tried a few pipenv commands and they all worked.
I installed the fish plugin again with fisher install pipenv and tried the same commands again and they all failed giving me the same Install http://docs.pipenv.org/en/latest/ to use this plugin. message.
It appears that for some reason the plugin is interpreting the results of command -s pipenv as pipenv is not installed.

Closing issue as recommended solution is now available in the Readme.

โœจ๐Ÿฐโœจ

Solution in the README didn't work for me. For starters, I didn't even have a ~/.config/fish/config.d directory so the plugin wasn't installing anything there. I created it anyway along with a script to set the path to my Python installation (conda) and that didn't make this problem go away.

I'm still having this issue as well. Solutions in README don't work and don't acknowledge that the issue exists on platforms outside of MacOS. I'm being prompted to install the latest version, in spite of pipenv being installed with --user using global python version as well as being installed within the virtualenv (via pyenv) that I'm using. This is on a VPS running Ubuntu 16.04, btw.

I wanna add, that this issue seems to be the default state, if you manage you python installations with pyenv and install the pyenv and pipenv fisherman plugins, since conf.d/pipenv.fish is evaluated before conf.d/pyenv.

$ tree .config/fish
...
โ”œโ”€โ”€ conf.d
โ”‚   โ”œโ”€โ”€ pipenv.fish -> /Users/markus/.config/fisherman/pipenv/conf.d/pipenv.fish
โ”‚   โ””โ”€โ”€ pyenv.fish -> /Users/markus/.config/fisherman/pyenv/conf.d/pyenv.fish
...

If I change the ordering like so, the issue is gone.

...
โ”œโ”€โ”€ conf.d
โ”‚   โ”œโ”€โ”€ 01_pyenv.fish -> /Users/markus/.config/fisherman/pyenv/conf.d/pyenv.fish
โ”‚   โ””โ”€โ”€ 02_pipenv.fish -> /Users/markus/.config/fisherman/pipenv/conf.d/pipenv.fish
...

An even better way to fix this issue may be the use of the universal variablefish_user_paths, like so:

set -U fish_user_paths ~/.pyenv/shims $fish_user_paths

The fish_user_paths is automatically prepended to $PATH, see https://fishshell.com/docs/current/tutorial.html#tut_path for details.