Reputation: 6331
I recently switched from bash to zsh (MacOS). I haven't used pipenv since the switch. Now when I run any pipenv command I get the following error:
$ pipenv install
zsh: /usr/local/bin/pipenv: bad interpreter: /usr/local/opt/python/bin/python3.7: no such file or directory
I use pyenv for Python dependency management:
$ which python
/Users/ryan.payne/.pyenv/shims/python
My default python version is 3.7.3:
$ pyenv versions
system
2.7.16
3.6.8
* 3.7.3 (set by /Users/ryan.payne/.pyenv/version)
It seems like pipenv is not using my pyenv version of Python. How do I get pipenv working again?
Upvotes: 18
Views: 46163
Reputation: 1358
If you installed pipenv with pipenv with pipx, then you can reinstall pipenv via pipx reinstall pipenv
which should detect any top level changes in your python environment.
Upvotes: 4
Reputation: 71
After brew installation, sometimes it may not work. Depending on whether you tried to install other python versions, the links might not be working any more, and therefore running the command
brew install python3 && cp /usr/local/bin/python3 /usr/local/bin/python
Might give an error as below
Error: Could not symlink bin/2to3
Target /usr/local/bin/2to3
already exists.
Try to remove the file 2to3
rm '/usr/local/bin/2to3'
and run the above code again Alternatively, you can force the linkage
brew link --overwrite python@<version>
but you can first see the files that will be deleted by this forced linking using the command
brew link --overwrite --dry-run python@<version>
I hope this gives more light
Upvotes: 2
Reputation: 1932
I had this same error with awscli
. The solution was to install [email protected] via homebrew and then cp
that installation into the directory awscli
expected.
brew install [email protected]
cp -r /usr/local/opt/[email protected]/bin/python3.7 /usr/local/opt/python/bin/python3.7
Upvotes: 9
Reputation: 101
Run in terminal:
brew install python3 && cp /usr/local/bin/python3 /usr/local/bin/python
Upvotes: 2
Reputation: 588
You don't need to uninstall anything. Simply change the interpreter at /usr/local/bin
and have your current python path in pyenv handy:
type python3
copy the path
vi /usr/local/bin/pipenv
It will look something like this:
Once it's changed, you will probably have to download pipenv again. Don't worry, your env is fine.
pip install pipenv
Go play in your env
Upvotes: 18