diff --git a/COMMANDS.md b/COMMANDS.md new file mode 100644 index 00000000..685cfc33 --- /dev/null +++ b/COMMANDS.md @@ -0,0 +1,248 @@ +# Command Reference + +Like `git`, the `pyenv` command delegates to subcommands based on its +first argument. + +The most common subcommands are: + +* [pyenv local](#pyenv-local) +* [pyenv global](#pyenv-global) +* [pyenv shell](#pyenv-shell) +* [pyenv versions](#pyenv-versions) +* [pyenv version](#pyenv-version) +* [pyenv rehash](#pyenv-rehash) +* [pyenv which](#pyenv-which) +* [pyenv whence](#pyenv-whence) + + + +## pyenv local + +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. + + +### pyenv local (advanced) + +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 + + +## pyenv global + +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. + + +### pyenv global (advanced) + +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 + + +## pyenv shell + +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 + + +### pyenv shell (advanced) + +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 + + +## pyenv versions + +Lists all Python versions known to pyenv, and shows an asterisk next to +the currently active version. + + $ 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 + + +## pyenv version + +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) + + +## 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 + + +## pyenv which + +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 + + +## pyenv whence + +Lists all Python versions with the given command installed. + + $ pyenv whence 2to3 + 2.6.8 + 2.7.6 + 3.3.3 + + +## pyenv install + +Part of [Python-build](https://github.com/yyuu/pyenv/tree/master/plugins/python-build), this installs versions of python + + $ 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) + + +## pyenv install --list + +List available remote versions of Python, including Anaconda, Jython, pypy, and stackless + + $ pyenv install --list + + diff --git a/README.md b/README.md index 21341913..e80658cc 100644 --- a/README.md +++ b/README.md @@ -47,14 +47,6 @@ This project was forked from [rbenv](https://github.com/sstephenson/rbenv) and * [Neckbeard Configuration](#neckbeard-configuration) * [Uninstalling Python Versions](#uninstalling-python-versions) * [Command Reference](#command-reference) - * [pyenv local](#pyenv-local) - * [pyenv global](#pyenv-global) - * [pyenv shell](#pyenv-shell) - * [pyenv versions](#pyenv-versions) - * [pyenv version](#pyenv-version) - * [pyenv rehash](#pyenv-rehash) - * [pyenv which](#pyenv-which) - * [pyenv whence](#pyenv-whence) * [Development](#development) * [Version History](#version-history) * [License](#license) @@ -295,238 +287,7 @@ with the `pyenv prefix` command, e.g. `pyenv prefix 2.6.8`. ## Command Reference -Like `git`, the `pyenv` command delegates to subcommands based on its -first argument. The most common subcommands are: - - -### pyenv local - -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. - - -#### pyenv local (advanced) - -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 - - -### pyenv global - -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. - - -#### pyenv global (advanced) - -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 - - -### pyenv shell - -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 - - -#### pyenv shell (advanced) - -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 - - -### pyenv versions - -Lists all Python versions known to pyenv, and shows an asterisk next to -the currently active version. - - $ 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 - - -### pyenv version - -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) - - -### 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 - - -### pyenv which - -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 - - -### pyenv whence - -Lists all Python versions with the given command installed. - - $ pyenv whence 2to3 - 2.6.8 - 2.7.6 - 3.3.3 - - -### pyenv install - -Part of [Python-build](https://github.com/yyuu/pyenv/tree/master/plugins/python-build), this installs versions of python - - $ 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) - - -### pyenv install --list - -List available remote versions of Python, including Anaconda, Jython, pypy, and stackless - - $ pyenv install --list +See [COMMANDS.md](COMMANDS.md). ## Development