2014-03-20 09:13:15 -04:00
|
|
|
# Command Reference
|
|
|
|
|
|
|
|
Like `git`, the `pyenv` command delegates to subcommands based on its
|
2017-04-16 23:59:53 -04:00
|
|
|
first argument.
|
2014-03-20 09:13:15 -04:00
|
|
|
|
|
|
|
The most common subcommands are:
|
|
|
|
|
2014-03-20 09:24:31 -04:00
|
|
|
* [`pyenv commands`](#pyenv-commands)
|
2014-03-20 09:20:20 -04:00
|
|
|
* [`pyenv local`](#pyenv-local)
|
|
|
|
* [`pyenv global`](#pyenv-global)
|
|
|
|
* [`pyenv shell`](#pyenv-shell)
|
2014-03-20 09:24:31 -04:00
|
|
|
* [`pyenv install`](#pyenv-install)
|
|
|
|
* [`pyenv uninstall`](#pyenv-uninstall)
|
2014-03-20 09:20:20 -04:00
|
|
|
* [`pyenv rehash`](#pyenv-rehash)
|
2014-03-20 09:33:32 -04:00
|
|
|
* [`pyenv version`](#pyenv-version)
|
|
|
|
* [`pyenv versions`](#pyenv-versions)
|
2014-03-20 09:20:20 -04:00
|
|
|
* [`pyenv which`](#pyenv-which)
|
|
|
|
* [`pyenv whence`](#pyenv-whence)
|
2021-10-02 16:15:18 -04:00
|
|
|
* [`pyenv exec`](#pyenv-exec)
|
2021-10-02 12:58:56 -04:00
|
|
|
* [`pyenv root`](#pyenv-root)
|
2021-10-02 12:54:12 -04:00
|
|
|
* [`pyenv prefix`](#pyenv-prefix)
|
2021-10-02 13:00:24 -04:00
|
|
|
* [`pyenv hooks`](#pyenv-hooks)
|
2021-10-02 16:10:37 -04:00
|
|
|
* [`pyenv shims`](#pyenv-shims)
|
2021-10-25 08:30:50 -04:00
|
|
|
* [`pyenv init`](#pyenv-init)
|
2021-10-24 16:33:32 -04:00
|
|
|
* [`pyenv completions`](#pyenv-completions)
|
2014-03-20 09:13:15 -04:00
|
|
|
|
2014-03-20 09:24:31 -04:00
|
|
|
## `pyenv commands`
|
|
|
|
|
|
|
|
Lists all available pyenv commands.
|
|
|
|
|
2014-03-20 09:20:20 -04:00
|
|
|
|
|
|
|
## `pyenv local`
|
2014-03-20 09:13:15 -04:00
|
|
|
|
|
|
|
Sets a local application-specific Python version by writing the version
|
|
|
|
name to a `.python-version` file in the current directory. This version
|
|
|
|
overrides the global version, and can be overridden itself by setting
|
|
|
|
the `PYENV_VERSION` environment variable or with the `pyenv shell`
|
|
|
|
command.
|
|
|
|
|
|
|
|
$ pyenv local 2.7.6
|
|
|
|
|
|
|
|
When run without a version number, `pyenv local` reports the currently
|
|
|
|
configured local version. You can also unset the local version:
|
|
|
|
|
|
|
|
$ pyenv local --unset
|
|
|
|
|
|
|
|
Previous versions of pyenv stored local version specifications in a
|
|
|
|
file named `.pyenv-version`. For backwards compatibility, pyenv will
|
|
|
|
read a local version specified in an `.pyenv-version` file, but a
|
|
|
|
`.python-version` file in the same directory will take precedence.
|
|
|
|
|
|
|
|
|
2014-03-20 09:20:20 -04:00
|
|
|
### `pyenv local` (advanced)
|
2014-03-20 09:13:15 -04:00
|
|
|
|
|
|
|
You can specify multiple versions as local Python at once.
|
|
|
|
|
|
|
|
Let's say if you have two versions of 2.7.6 and 3.3.3. If you prefer 2.7.6 over 3.3.3,
|
|
|
|
|
|
|
|
$ pyenv local 2.7.6 3.3.3
|
|
|
|
$ pyenv versions
|
|
|
|
system
|
|
|
|
* 2.7.6 (set by /Users/yyuu/path/to/project/.python-version)
|
|
|
|
* 3.3.3 (set by /Users/yyuu/path/to/project/.python-version)
|
|
|
|
$ python --version
|
|
|
|
Python 2.7.6
|
|
|
|
$ python2.7 --version
|
|
|
|
Python 2.7.6
|
|
|
|
$ python3.3 --version
|
|
|
|
Python 3.3.3
|
|
|
|
|
|
|
|
or, if you prefer 3.3.3 over 2.7.6,
|
|
|
|
|
|
|
|
$ pyenv local 3.3.3 2.7.6
|
|
|
|
$ pyenv versions
|
|
|
|
system
|
|
|
|
* 2.7.6 (set by /Users/yyuu/path/to/project/.python-version)
|
|
|
|
* 3.3.3 (set by /Users/yyuu/path/to/project/.python-version)
|
|
|
|
venv27
|
|
|
|
$ python --version
|
|
|
|
Python 3.3.3
|
|
|
|
$ python2.7 --version
|
|
|
|
Python 2.7.6
|
|
|
|
$ python3.3 --version
|
|
|
|
Python 3.3.3
|
|
|
|
|
|
|
|
|
2014-03-20 09:20:20 -04:00
|
|
|
## `pyenv global`
|
2014-03-20 09:13:15 -04:00
|
|
|
|
|
|
|
Sets the global version of Python to be used in all shells by writing
|
|
|
|
the version name to the `~/.pyenv/version` file. This version can be
|
|
|
|
overridden by an application-specific `.python-version` file, or by
|
|
|
|
setting the `PYENV_VERSION` environment variable.
|
|
|
|
|
|
|
|
$ pyenv global 2.7.6
|
|
|
|
|
|
|
|
The special version name `system` tells pyenv to use the system Python
|
|
|
|
(detected by searching your `$PATH`).
|
|
|
|
|
|
|
|
When run without a version number, `pyenv global` reports the
|
|
|
|
currently configured global version.
|
|
|
|
|
|
|
|
|
2014-03-20 09:20:20 -04:00
|
|
|
### `pyenv global` (advanced)
|
2014-03-20 09:13:15 -04:00
|
|
|
|
|
|
|
You can specify multiple versions as global Python at once.
|
|
|
|
|
|
|
|
Let's say if you have two versions of 2.7.6 and 3.3.3. If you prefer 2.7.6 over 3.3.3,
|
|
|
|
|
|
|
|
$ pyenv global 2.7.6 3.3.3
|
|
|
|
$ pyenv versions
|
|
|
|
system
|
|
|
|
* 2.7.6 (set by /Users/yyuu/.pyenv/version)
|
|
|
|
* 3.3.3 (set by /Users/yyuu/.pyenv/version)
|
|
|
|
$ python --version
|
|
|
|
Python 2.7.6
|
|
|
|
$ python2.7 --version
|
|
|
|
Python 2.7.6
|
|
|
|
$ python3.3 --version
|
|
|
|
Python 3.3.3
|
|
|
|
|
|
|
|
or, if you prefer 3.3.3 over 2.7.6,
|
|
|
|
|
|
|
|
$ pyenv global 3.3.3 2.7.6
|
|
|
|
$ pyenv versions
|
|
|
|
system
|
|
|
|
* 2.7.6 (set by /Users/yyuu/.pyenv/version)
|
|
|
|
* 3.3.3 (set by /Users/yyuu/.pyenv/version)
|
|
|
|
venv27
|
|
|
|
$ python --version
|
|
|
|
Python 3.3.3
|
|
|
|
$ python2.7 --version
|
|
|
|
Python 2.7.6
|
|
|
|
$ python3.3 --version
|
|
|
|
Python 3.3.3
|
|
|
|
|
|
|
|
|
2014-03-20 09:20:20 -04:00
|
|
|
## `pyenv shell`
|
2014-03-20 09:13:15 -04:00
|
|
|
|
|
|
|
Sets a shell-specific Python version by setting the `PYENV_VERSION`
|
|
|
|
environment variable in your shell. This version overrides
|
|
|
|
application-specific versions and the global version.
|
|
|
|
|
|
|
|
$ pyenv shell pypy-2.2.1
|
|
|
|
|
|
|
|
When run without a version number, `pyenv shell` reports the current
|
|
|
|
value of `PYENV_VERSION`. You can also unset the shell version:
|
|
|
|
|
|
|
|
$ pyenv shell --unset
|
|
|
|
|
|
|
|
Note that you'll need pyenv's shell integration enabled (step 3 of
|
|
|
|
the installation instructions) in order to use this command. If you
|
|
|
|
prefer not to use shell integration, you may simply set the
|
|
|
|
`PYENV_VERSION` variable yourself:
|
|
|
|
|
|
|
|
$ export PYENV_VERSION=pypy-2.2.1
|
|
|
|
|
|
|
|
|
2014-03-20 09:20:20 -04:00
|
|
|
### `pyenv shell` (advanced)
|
2014-03-20 09:13:15 -04:00
|
|
|
|
|
|
|
You can specify multiple versions via `PYENV_VERSION` at once.
|
|
|
|
|
|
|
|
Let's say if you have two versions of 2.7.6 and 3.3.3. If you prefer 2.7.6 over 3.3.3,
|
|
|
|
|
|
|
|
$ pyenv shell 2.7.6 3.3.3
|
|
|
|
$ pyenv versions
|
|
|
|
system
|
|
|
|
* 2.7.6 (set by PYENV_VERSION environment variable)
|
|
|
|
* 3.3.3 (set by PYENV_VERSION environment variable)
|
|
|
|
$ python --version
|
|
|
|
Python 2.7.6
|
|
|
|
$ python2.7 --version
|
|
|
|
Python 2.7.6
|
|
|
|
$ python3.3 --version
|
|
|
|
Python 3.3.3
|
|
|
|
|
|
|
|
or, if you prefer 3.3.3 over 2.7.6,
|
|
|
|
|
|
|
|
$ pyenv shell 3.3.3 2.7.6
|
|
|
|
$ pyenv versions
|
|
|
|
system
|
|
|
|
* 2.7.6 (set by PYENV_VERSION environment variable)
|
|
|
|
* 3.3.3 (set by PYENV_VERSION environment variable)
|
|
|
|
venv27
|
|
|
|
$ python --version
|
|
|
|
Python 3.3.3
|
|
|
|
$ python2.7 --version
|
|
|
|
Python 2.7.6
|
|
|
|
$ python3.3 --version
|
|
|
|
Python 3.3.3
|
|
|
|
|
|
|
|
|
2014-03-20 09:24:31 -04:00
|
|
|
## `pyenv install`
|
|
|
|
|
2017-04-16 23:59:53 -04:00
|
|
|
Install a Python version (using [`python-build`](https://github.com/pyenv/pyenv/tree/master/plugins/python-build)).
|
2014-03-20 09:24:31 -04:00
|
|
|
|
2014-03-20 09:33:32 -04:00
|
|
|
Usage: pyenv install [-f] [-kvp] <version>
|
|
|
|
pyenv install [-f] [-kvp] <definition-file>
|
|
|
|
pyenv install -l|--list
|
|
|
|
|
2016-02-05 03:50:02 -05:00
|
|
|
-l/--list List all available versions
|
|
|
|
-f/--force Install even if the version appears to be installed already
|
|
|
|
-s/--skip-existing Skip the installation if the version appears to be installed already
|
2014-03-20 09:33:32 -04:00
|
|
|
|
|
|
|
python-build options:
|
|
|
|
|
|
|
|
-k/--keep Keep source tree in $PYENV_BUILD_ROOT after installation
|
|
|
|
(defaults to $PYENV_ROOT/sources)
|
|
|
|
-v/--verbose Verbose mode: print compilation status to stdout
|
|
|
|
-p/--patch Apply a patch from stdin before building
|
|
|
|
-g/--debug Build a debug version
|
|
|
|
|
2016-09-15 09:28:54 -04:00
|
|
|
To list the all available versions of Python, including Anaconda, Jython, pypy, and stackless, use:
|
|
|
|
|
|
|
|
$ pyenv install --list
|
|
|
|
|
|
|
|
Then install the desired versions:
|
|
|
|
|
|
|
|
$ pyenv install 2.7.6
|
|
|
|
$ pyenv install 2.6.8
|
|
|
|
$ pyenv versions
|
|
|
|
system
|
|
|
|
2.6.8
|
|
|
|
* 2.7.6 (set by /home/yyuu/.pyenv/version)
|
2014-03-20 09:24:31 -04:00
|
|
|
|
|
|
|
## `pyenv uninstall`
|
|
|
|
|
2014-03-20 09:33:32 -04:00
|
|
|
Uninstall a specific Python version.
|
2014-03-20 09:24:31 -04:00
|
|
|
|
2014-03-20 09:33:32 -04:00
|
|
|
Usage: pyenv uninstall [-f|--force] <version>
|
2014-03-20 09:24:31 -04:00
|
|
|
|
2014-03-20 09:33:32 -04:00
|
|
|
-f Attempt to remove the specified version without prompting
|
|
|
|
for confirmation. If the version does not exist, do not
|
|
|
|
display an error message.
|
2014-03-20 09:13:15 -04:00
|
|
|
|
|
|
|
|
2014-03-20 09:33:32 -04:00
|
|
|
## `pyenv rehash`
|
|
|
|
|
|
|
|
Installs shims for all Python binaries known to pyenv (i.e.,
|
|
|
|
`~/.pyenv/versions/*/bin/*`). Run this command after you install a new
|
|
|
|
version of Python, or install a package that provides binaries.
|
|
|
|
|
|
|
|
$ pyenv rehash
|
2014-03-20 09:13:15 -04:00
|
|
|
|
|
|
|
|
2014-03-20 09:20:20 -04:00
|
|
|
## `pyenv version`
|
2014-03-20 09:13:15 -04:00
|
|
|
|
|
|
|
Displays the currently active Python version, along with information on
|
|
|
|
how it was set.
|
|
|
|
|
|
|
|
$ pyenv version
|
|
|
|
2.7.6 (set by /home/yyuu/.pyenv/version)
|
|
|
|
|
|
|
|
|
2014-03-20 09:33:32 -04:00
|
|
|
## `pyenv versions`
|
2014-03-20 09:13:15 -04:00
|
|
|
|
2014-03-20 09:33:32 -04:00
|
|
|
Lists all Python versions known to pyenv, and shows an asterisk next to
|
|
|
|
the currently active version.
|
2014-03-20 09:13:15 -04:00
|
|
|
|
2014-03-20 09:33:32 -04:00
|
|
|
$ pyenv versions
|
|
|
|
2.5.6
|
|
|
|
2.6.8
|
|
|
|
* 2.7.6 (set by /home/yyuu/.pyenv/version)
|
|
|
|
3.3.3
|
|
|
|
jython-2.5.3
|
|
|
|
pypy-2.2.1
|
2014-03-20 09:13:15 -04:00
|
|
|
|
|
|
|
|
2014-03-20 09:20:20 -04:00
|
|
|
## `pyenv which`
|
2014-03-20 09:13:15 -04:00
|
|
|
|
|
|
|
Displays the full path to the executable that pyenv will invoke when
|
|
|
|
you run the given command.
|
|
|
|
|
|
|
|
$ pyenv which python3.3
|
|
|
|
/home/yyuu/.pyenv/versions/3.3.3/bin/python3.3
|
|
|
|
|
2021-04-09 03:46:22 -04:00
|
|
|
Use --nosystem argument in case when you don't need to search command in the
|
|
|
|
system environment.
|
2014-03-20 09:13:15 -04:00
|
|
|
|
2014-03-20 09:20:20 -04:00
|
|
|
## `pyenv whence`
|
2014-03-20 09:13:15 -04:00
|
|
|
|
|
|
|
Lists all Python versions with the given command installed.
|
|
|
|
|
|
|
|
$ pyenv whence 2to3
|
|
|
|
2.6.8
|
|
|
|
2.7.6
|
|
|
|
3.3.3
|
2021-10-02 12:54:12 -04:00
|
|
|
|
2021-10-02 16:15:18 -04:00
|
|
|
## `pyenv exec`
|
|
|
|
|
|
|
|
`Usage: pyenv exec <command> [arg1 arg2...]`
|
|
|
|
|
|
|
|
Runs an executable by first preparing PATH so that the selected Python
|
|
|
|
version's `bin` directory is at the front.
|
|
|
|
|
|
|
|
For example, if the currently selected Python version is 3.9.7:
|
|
|
|
|
|
|
|
`pyenv exec pip install -r requirements.txt`
|
|
|
|
|
|
|
|
is equivalent to:
|
|
|
|
|
|
|
|
`PATH="$PYENV_ROOT/versions/3.9.7/bin:$PATH" pip install -r requirements.txt`
|
|
|
|
|
2021-10-02 12:58:56 -04:00
|
|
|
## `pyenv root`
|
|
|
|
|
|
|
|
Displays the root directory where versions and shims are kept.
|
|
|
|
|
|
|
|
$ pyenv root
|
|
|
|
/home/user/.pyenv
|
|
|
|
|
2021-10-02 12:54:12 -04:00
|
|
|
## `pyenv prefix`
|
|
|
|
|
|
|
|
Displays the directory where a Python version is installed. If no
|
|
|
|
version is given, `pyenv prefix` displays the location of the
|
|
|
|
currently selected version.
|
|
|
|
|
|
|
|
$ pyenv prefix 3.9.7
|
|
|
|
/home/user/.pyenv/versions/3.9.7
|
2021-10-02 13:00:24 -04:00
|
|
|
|
|
|
|
## `pyenv hooks`
|
|
|
|
|
|
|
|
Lists installed hook scripts for a given pyenv command.
|
2021-10-02 16:10:37 -04:00
|
|
|
|
|
|
|
Usage: pyenv hooks <command>
|
|
|
|
|
|
|
|
## `pyenv shims`
|
|
|
|
|
|
|
|
List existing pyenv shims.
|
|
|
|
|
|
|
|
Usage: pyenv shims [--short]
|
|
|
|
|
|
|
|
$ pyenv shims
|
|
|
|
/home/user/.pyenv/shims/2to3
|
|
|
|
/home/user/.pyenv/shims/2to3-3.9
|
|
|
|
/home/user/.pyenv/shims/idle
|
|
|
|
/home/user/.pyenv/shims/idle3
|
|
|
|
/home/user/.pyenv/shims/idle3.9
|
|
|
|
/home/user/.pyenv/shims/pip
|
|
|
|
/home/user/.pyenv/shims/pip3
|
|
|
|
/home/user/.pyenv/shims/pip3.9
|
|
|
|
/home/user/.pyenv/shims/pydoc
|
|
|
|
/home/user/.pyenv/shims/pydoc3
|
|
|
|
/home/user/.pyenv/shims/pydoc3.9
|
|
|
|
/home/user/.pyenv/shims/python
|
|
|
|
/home/user/.pyenv/shims/python3
|
|
|
|
/home/user/.pyenv/shims/python3.9
|
|
|
|
/home/user/.pyenv/shims/python3.9-config
|
|
|
|
/home/user/.pyenv/shims/python3.9-gdb.py
|
|
|
|
/home/user/.pyenv/shims/python3-config
|
|
|
|
/home/user/.pyenv/shims/python-config
|
2021-10-24 16:33:32 -04:00
|
|
|
|
2021-10-25 08:30:50 -04:00
|
|
|
## `pyenv init`
|
|
|
|
|
|
|
|
Configure the shell environment for pyenv
|
|
|
|
|
|
|
|
Usage: eval "$(pyenv init [-|--path] [--no-rehash] [<shell>])"
|
|
|
|
|
|
|
|
- Initialize shims directory, print PYENV_SHELL variable, completions path
|
|
|
|
and shell function
|
|
|
|
--path Print shims path
|
|
|
|
--no-rehash Add no rehash command to output
|
|
|
|
|
2021-10-24 16:33:32 -04:00
|
|
|
## `pyenv completions`
|
|
|
|
|
|
|
|
Lists available completions for a given pyenv command.
|
|
|
|
|
2021-10-25 08:30:50 -04:00
|
|
|
Usage: pyenv completions <command> [arg1 arg2...]
|