A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://github.com/pyenv/pyenv/wiki below:

Home · pyenv/pyenv Wiki · GitHub

pyenv is a tool for simple Python version management.

To install pyenv, please refer to the Readme.

Suggested build environment

pyenv will try its best to download and compile the wanted Python version, but sometimes compilation fails because of unmet system dependencies, or compilation succeeds but the new Python version exhibits weird failures at runtime. The following instructions are our recommendations for a sane build environment.

Note

Python 3.14 adds support for a compression.zstd module that depends on zstd version 1.4.5 or newer. This version is not available in some extended-release distros like Alma/Rocky Linux 8 and Ubuntu 20.04. See PEP 784 for more details.

See also Common build problems for further information.

How is this better than pythonbrew and pythonz?

See Why pyenv?

Python scripts or shell scripts that use python keep failing

If you experience failure while executing a script that issues python command or executes another python script:

Such failures usually show up as:

What is allowed in a .python-version file?

The string read from a .python-version file must match the name of an existing directory in ~/.pyenv/versions/. You can see the list of installed Python versions with pyenv versions.

If you're using python-build, typically this will be one of the versions listed by the pyenv versions command.

Other version managers might allow fuzzy version matching on the string read from .python-version file, e.g. they might allow "3.3" (without patch suffix) to match the latest Python 3.3 release. pyenv will not support this, because such behavior is unpredictable and therefore harmful.

How to verify that I have set up pyenv correctly?
  1. Check that pyenv is in your PATH:

  2. Check that pyenv's shims directory is in your PATH:

    echo $PATH | grep --color=auto "$(pyenv root)/shims"

    If not, see Configure your shell's environment for pyenv in the installation instructions.

pyenv is installed but things just aren't working for me!

Please search existing issues and open a new one if you can't find any answers. Here's a script that dumps information about your current environment; you can use Gist to paste it online and share the URL to it in your bug report:

git clone https://github.com/pyenv/pyenv-doctor.git "$(pyenv root)/plugins/pyenv-doctor"
pyenv doctor
Which shell startup file do I put pyenv config in?

Typically it's one of the following:

With bash on Ubuntu, you probably already have a ~/.profile. In that case you should add pyenv config there instead of creating a ~/.bash_profile. However, since this file is read only once per desktop login, you may achieve quicker results by adding pyenv to ~/.bashrc instead.

See Unix shell initialization for more info about how config files get loaded.

The PYENV_DEBUG is the environment variable to debug logging in pyenv. You can try to enable debug logging by setting something in the environment variable like PYENV_DEBUG=1 pyenv versions.

How to build CPython with Framework support on OS X

Some of 3rd party tool like PyInstaller might require CPython installation built with --enable-framework. You can build CPython with shared library as follows.

$ env PYTHON_CONFIGURE_OPTS="--enable-framework" pyenv install 3.5.0

Note: You'd better not export PYTHON_CONFIGURE_OPTS cause it breaks building of some distros like miniconda and anaconda.

How to build CPython with --enable-shared

Some of 3rd party tool like PyInstaller might require CPython installation built with --enable-shared. You can build CPython with shared library as follows.

$ env PYTHON_CONFIGURE_OPTS="--enable-shared" pyenv install 3.5.0

Since pyenv (precisely, python-build) will build CPython with configuring RPATH, you don't have to set LD_LIBRARY_PATH to specify library path on GNU/Linux.

How to build CPython for maximum performance

Building CPython with --enable-optimizations will result in a faster interpreter at the cost of significantly longer build times. Most notably, this enables PGO (profile guided optimization). While your mileage may vary, it is common for performance improvement from this to be in the ballpark of 30%.

env PYTHON_CONFIGURE_OPTS='--enable-optimizations --with-lto' PYTHON_CFLAGS='-march=native -mtune=native' pyenv install 3.6.0

You can also customize the task used for profile guided optimization by setting the PROFILE_TASK environment variable, for instance, PROFILE_TASK='-m test.regrtest --pgo -j0' will run much faster than the default task.


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4