Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Homebrew pyenv... can't install Python 3.8.3, despite I already have it installed

Tags:

pyenv

I have 3.8.2 installed via pyenv but I want to upgrade to 3.8.3 on my local machine, to match the version we're using in production.

$  pyenv install 3.8.3
python-build: definition not found: 3.8.3

The following versions contain `3.8.3' in the name:
  miniconda-3.8.3
  miniconda3-3.8.3

See all available versions with `pyenv install --list'.

If the version you need is missing, try upgrading pyenv:

  brew update && brew upgrade pyenv

ok let's try that...

$  brew update && brew upgrade pyenv
Updating Homebrew...
Warning: pyenv 1.2.18 already installed

I'm unclear where the Python versions that pyenv installs from are provided. I already have 3.8.3 installed:

$  brew info [email protected]
[email protected]: stable 3.8.3 (bottled) [keg-only]
Interpreted, interactive, object-oriented programming language
https://www.python.org/
/usr/local/Cellar/[email protected]/3.8.2 (4,137 files, 63.0MB)
  Poured from bottle on 2020-04-21 at 11:47:57
From: https://github.com/Homebrew/homebrew-core/blob/master/Formula/[email protected]
==> Dependencies
Build: pkg-config ✔
Required: gdbm ✔, [email protected] ✔, readline ✔, sqlite ✘, xz ✔
==> Caveats
Python has been installed as
  /usr/local/opt/[email protected]/bin/python3

You can install Python packages with
  /usr/local/opt/[email protected]/bin/pip3 install <package>
They will install into the site-package directory
  /usr/local/Cellar/[email protected]/3.8.3/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages

See: https://docs.brew.sh/Homebrew-and-Python

[email protected] is keg-only, which means it was not symlinked into /usr/local,
because this is an alternate version of another formula.

==> Analytics
install: 398,535 (30 days), 966,259 (90 days), 1,270,935 (365 days)
install-on-request: 11,428 (30 days), 29,656 (90 days), 42,309 (365 days)
build-error: 0 (30 days)

So it's not that 3.8.3 is not available in Homebrew. And my Homebrew "linked" Python is 3.7.7, but that didn't stop me from installing 3.8.2.

Are we just stuck waiting for pyenv to push a new release to Homebrew? Is there some way I can point pyenv to my existing Homebrew-installed 3.8.3?

like image 833
Anentropic Avatar asked Jun 03 '20 09:06

Anentropic


People also ask

How do I uninstall Python Pyenv?

As time goes on, you will accumulate Python versions in your $(pyenv root)/versions directory. To remove old Python versions, pyenv uninstall command to automate the removal process. Alternatively, simply rm -rf the directory of the version you want to remove.

Does Pyenv work on M1 Mac?

pyenv install Python 3.9. 4 seamlessly on Mac M1 and everything works out of the box.

Can you have multiple Python installations?

Multiple Python versions: Different installations of Python on the same machine, 2.7 and 3.4 for example. Virtual environments: isolated independent environments that can have both a specific version of Python and of any project-specific packages installed within them, without affecting any other projects.


1 Answers

You either have to wait for the new Homebrew pyenv release, make the release yourself and get it pulled it into Homebrew, or install the master branch of pyenv.

To install the master branch of pyenv and 3.8.3:

brew unlink pyenv
brew install pyenv --head
pyenv install 3.8.3

More info about the 3.8.3 release: https://github.com/pyenv/pyenv/pull/1612

like image 66
Jungroth Avatar answered Oct 25 '22 10:10

Jungroth