docs: add documentation to Advanced Configuration
section.
Tell users that `pyenv init -` works, but that specifying the shell which is used is preferable, as it reduces launch time.
This commit is contained in:
parent
e8f9c3d6a0
commit
c2554fc885
12
README.md
12
README.md
@ -656,23 +656,25 @@ for the environment variables that control Pyenv's behavior.
|
|||||||
extra commands into your shell. Coming from RVM, some of you might be
|
extra commands into your shell. Coming from RVM, some of you might be
|
||||||
opposed to this idea. Here's what `eval "$(pyenv init -)"` actually does:
|
opposed to this idea. Here's what `eval "$(pyenv init -)"` actually does:
|
||||||
|
|
||||||
|
1. **Finds current shell.**
|
||||||
|
`pyenv init` figures out what shell you are using, as the exact commands of `eval "$(pyenv init -)"` vary depending on shell. Specifying which shell you are using (e.g. `eval "$(pyenv init - bash)"`) is preferred, because it reduces launch time significantly.
|
||||||
|
|
||||||
1. **Sets up the shims path.** This is what allows Pyenv to intercept
|
2. **Sets up the shims path.** This is what allows Pyenv to intercept
|
||||||
and redirect invocations of `python`, `pip` etc. transparently.
|
and redirect invocations of `python`, `pip` etc. transparently.
|
||||||
It prepends `$(pyenv root)/shims` to your `$PATH`.
|
It prepends `$(pyenv root)/shims` to your `$PATH`.
|
||||||
It also deletes any other instances of `$(pyenv root)/shims` on `PATH`
|
It also deletes any other instances of `$(pyenv root)/shims` on `PATH`
|
||||||
which allows to invoke `eval "$(pyenv init -)"` multiple times without
|
which allows to invoke `eval "$(pyenv init -)"` multiple times without
|
||||||
getting duplicate `PATH` entries.
|
getting duplicate `PATH` entries.
|
||||||
|
|
||||||
2. **Installs autocompletion.** This is entirely optional but pretty
|
3. **Installs autocompletion.** This is entirely optional but pretty
|
||||||
useful. Sourcing `$(pyenv root)/completions/pyenv.bash` will set that
|
useful. Sourcing `$(pyenv root)/completions/pyenv.bash` will set that
|
||||||
up. There are also completions for Zsh and Fish.
|
up. There are also completions for Zsh and Fish.
|
||||||
|
|
||||||
3. **Rehashes shims.** From time to time you'll need to rebuild your
|
4. **Rehashes shims.** From time to time you'll need to rebuild your
|
||||||
shim files. Doing this on init makes sure everything is up to
|
shim files. Doing this on init makes sure everything is up to
|
||||||
date. You can always run `pyenv rehash` manually.
|
date. You can always run `pyenv rehash` manually.
|
||||||
|
|
||||||
4. **Installs `pyenv` into the current shell as a shell function.**
|
5. **Installs `pyenv` into the current shell as a shell function.**
|
||||||
This bit is also optional, but allows
|
This bit is also optional, but allows
|
||||||
pyenv and plugins to change variables in your current shell.
|
pyenv and plugins to change variables in your current shell.
|
||||||
This is required for some commands like `pyenv shell` to work.
|
This is required for some commands like `pyenv shell` to work.
|
||||||
@ -681,7 +683,7 @@ opposed to this idea. Here's what `eval "$(pyenv init -)"` actually does:
|
|||||||
for some reason you need `pyenv` to be a real script rather than a
|
for some reason you need `pyenv` to be a real script rather than a
|
||||||
shell function, you can safely skip it.
|
shell function, you can safely skip it.
|
||||||
|
|
||||||
`eval "$(pyenv init --path)"` only does items 1 and 3.
|
`eval "$(pyenv init --path)"` only does items 2 and 4.
|
||||||
|
|
||||||
To see exactly what happens under the hood for yourself, run `pyenv init -`
|
To see exactly what happens under the hood for yourself, run `pyenv init -`
|
||||||
or `pyenv init --path`.
|
or `pyenv init --path`.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user