Commit graph

560 commits

Author SHA1 Message Date
Ivan Pozdeev e0d109c227 Include a Bash automated install option 2021-05-13 22:58:07 +03:00
native-api 0d07cda969
Update install instructions for Bash and Zsh (#1920)
* Update install instructions for Bash and Zsh

* Synchronize README.md with `pyenv init`
* Add a ~/.bash_profile note
* Concatenate shims activation into installation for brevity
  (Pyenv can't be used meaningfully without shims anyway)
  Otherwise, we'd need to duplicate all the ~/.profile shenanigans in both sections
* Update based on feedback
* Proofread
2021-05-13 22:57:14 +03:00
Fabian Homborg 0d2fb35cee
Fix fish installation instructions (#1916) 2021-05-11 22:35:15 +03:00
Ivan Pozdeev da9392fd09 Add a hint for cases when ~/.profile sources ~/.rc
Our ~/.rc logic must run after the ~/.profile one
2021-05-10 04:39:45 +03:00
Ivan Pozdeev 13deda8875 Place full shell configuration instructions into pyenv init
including initial PATH and PYENV_ROOT entries.
The migration hint proved to be unclear to users without them.
2021-05-10 00:08:46 +03:00
Ivan Pozdeev aab562c696 Add a warning about needing to restart the entire login session
E.g. for a GUI session, ~/.profile is executed by the GUI login "shell" at its startup
so one needs to fully log out and log back in.
Before that, the change would only be seen by shells explicitly started as login shells.
2021-05-07 16:21:17 +03:00
Ivan Pozdeev 3e3f40fefc Warn users to add pyenv init --path to ~/.profile
To facilitate migration
2021-05-05 03:04:52 +03:00
Ivan Pozdeev 7838707595 Separate startup logic into PATH and the rest
PATH manipulation should be done in ~/.profile rather than ~/.*rc since .rc can be sourced multiple times
2021-05-05 03:04:51 +03:00
Ivan Pozdeev 5998f4f7ab Refactoring: make logic more fit for rearrangement
With functions, we have more leeway in what to call
2021-05-05 01:25:11 +03:00
Anton Petrov 6656066d4f
1.2.27 2021-05-01 08:41:27 +03:00
Anton Petrov 2924886a77
Merge pull request #1350 from maxbrunet/feature/versions/dotglob
List versions starting with a dot
2021-04-15 21:02:50 +03:00
Ville Skyttä 641916270b feat: support (skip) commented lines in version-file
Sometimes it is convenient to be able to temporarily disable something
in a version-file. Because these files often aren't necessarily tracked
in a SCM, especially when working with virtualenvs, the SCM diffs won't
help with showing removed lines which are currently the only way to
disable something.
2021-04-11 07:46:34 +03:00
Anton Petrov 80067632b6
1.2.26 2021-04-05 14:25:25 +03:00
Anton Petrov 35aa7e52ce
1.2.25 2021-04-04 14:42:16 +03:00
Ville Skyttä 61d702405d feat(init): strip -<suffix> when autodetecting shell
For example bash-5.1, bash-static.
2021-03-23 22:10:55 +02:00
Anton Petrov 332772abc5
1.2.24 2021-03-19 10:06:26 +03:00
Anton Petrov afb14d2072
Merge pull request #1814 from native-api/rm_script_dir
Remove the "Using script's directory as PYENV_DIR if shim is invoked with a script argument" feature
2021-03-09 14:36:12 +03:00
Ville Skyttä f06fb60b1f Make work in nounset (-u) mode 2021-02-23 22:29:56 +02:00
Anton Petrov f31a06dc19
Added --nosystem argument
Added --nosystem argument to skip the system environment when searching for an executable.
2021-02-22 12:21:02 +03:00
Josh Friend 5f62ad7680
v1.2.23 2021-02-17 11:32:41 -05:00
tuzi3040 d51999adf5
Fix 'sed: RE error: illegal byte sequence' (#1714)
... by unsetting `LC_ALL` and passing `LC_CTYPE=C` to `sed`.

This commit fixes issue #1454.
2021-02-17 11:12:45 -05:00
Ivan Pozdeev 131e44afcb Remove the "Using script's directory as PYENV_DIR if shim is invoked with a script argument" feature
It's impossible to 100% reliably extract the script argument from the command line for all and unknown Python versions and implementations
2021-02-16 23:59:08 +03:00
Ivan Pozdeev a6b0a2846e Revert "shims: handle symlinked scripts, via new PYENV_FILE_ARG"
This reverts commit 493f036928.

# Conflicts:
#	libexec/pyenv
2021-02-16 23:53:05 +03:00
Ivan Pozdeev 00f7d6249a Fix not printing asterisk for current version in Bash 3 2021-02-14 15:50:36 +03:00
Ivan Pozdeev 9309050864 Use a better PS4 as recommeneded by Bash Hackers Wiki
it allows to see functions as well as lines, therefore making it possible to see the control flow
2021-02-10 22:42:18 +03:00
Anton Petrov 89d3d0c33d
Merge pull request #1655 from draeath/master
"system" python - support cases where python3, python2 is in PATH but not python
2021-02-10 20:45:41 +03:00
Anton Petrov 50a48764ff
Merge pull request #1797 from rharish101/search_system
Added fallback to system executable
2021-02-07 19:37:26 +03:00
Ville Skyttä c4e556eded versions: use associative array to hold current versions
"hyperfine pyenv-versions" before with my bash 4.4:

Time (mean ± σ):    81.7 ms ±   2.2 ms  [User: 67.8 ms, System: 15.7 ms]
Range (min … max):  78.3 ms …  87.2 ms  34 runs

After:

Time (mean ± σ):    70.6 ms ±   2.4 ms  [User: 55.6 ms, System: 16.9 ms]
Range (min … max):  67.9 ms …  78.9 ms  41 runs
2021-01-29 19:54:25 +02:00
Ville Skyttä a804887307 rehash: use associative array to hold registered shims
"hyperfine pyenv-rehash" before on my bash 4.4:

Time (mean ± σ):   172.8 ms ±   8.2 ms [User: 185.0 ms, System: 24.8 ms]
Range (min … max): 164.2 ms … 198.4 ms 15 runs

After:

Time (mean ± σ):   113.8 ms ±   2.8 ms [User: 127.1 ms, System: 26.1 ms]
Range (min … max): 108.0 ms … 117.6 ms 25 runs
2021-01-29 19:54:25 +02:00
Harish Rajagopal cdecf14535
Added fallback to system executable
If pyenv doesn't find an executable for the current version/virtualenv,
then search the "system" version as a fallback.
2021-01-29 13:01:21 +01:00
Ville Skyttä b938abdea1 rehash: preserve existing $PYENV_REHASH_TIMEOUT semantics
Try for that long no matter what the sleep step available is.
2021-01-28 16:00:59 +02:00
Ville Skyttä c0ea15226d rehash: try to sleep in 0.1 sec steps when acquiring lock 2021-01-28 16:00:59 +02:00
Yamashita, Yuu dc70546565
v1.2.22 (fixes #1760) 2021-01-10 12:52:22 +09:00
Josh Friend 806b30d6ce
v1.2.21 2020-10-08 20:59:02 -04:00
cornfeedhobo cadebd8e65
Search for plugins in PYENV_DIR and PYENV_ROOT (#1697) 2020-10-01 21:33:34 -04:00
M. Smits 71d2e4549e
Updated documentation pyenv init for fish shell comform to readme. (#1703) 2020-10-01 21:28:29 -04:00
Smiler Lee 592271b86f
Fix 'sed: RE error: illegal byte sequence' (#1670)
... which is caused by `realpath.dylib` containing illegal UTF-8 byte sequence, and `LC_CTYPE` won't take effect if `LC_ALL` happens to be set to something other than `C`.

This commit fixes issue pyenv/pyenv#1454.

Ref: https://stackoverflow.com/a/23584470
2020-10-01 20:16:55 -04:00
Ivan Pozdeev f77c2d7eab Detect Py2 presence as well 2020-09-21 18:53:09 +03:00
Arcadiy Ivanov 0164e2bd59
CPython 3.9.0b4 (#1654) 2020-07-09 22:14:12 -04:00
Paul Bransford 4d762bca7b fix 'system' python to be present if 'python3' is on path but not 'python' 2020-07-07 18:39:52 -04:00
Josh Friend 86fbc6861d
v1.2.19 2020-06-17 09:59:49 -04:00
Josh Friend 1b6657e751
v1.2.18 2020-04-02 15:28:56 -04:00
Brian Dowling a8ca63fcc0
Update help docs to clarify multiple version(s) are allowed (#1197)
* Update help docs to clarify multiple version(s) are allowed

* Tweek version(s) help description
2020-03-19 17:35:46 -04:00
Edwin Shin 89786b909f
pyenv-version-file-read: use POSIX character sets (#1554)
Fixes #623
2020-03-13 09:08:18 -04:00
Josh Friend 3005c46643
v1.2.17 2020-03-13 08:38:35 -04:00
adrian-the-git 7097f8204e Remove duplicate help message (#1525)
The pyenv help listing offered the "commands" command twice.
2020-01-22 18:12:29 -05:00
Phil Fernandez 1487135415 fixes sed illegal byte sequence error (#1521) 2020-01-14 13:07:05 -05:00
Josh Friend ce0be04ad4
v1.2.16 2020-01-06 08:06:57 -05:00
Josh Friend b5f69fe58a
v1.2.15 2019-10-31 16:06:42 -04:00
wukuan405 fcf539ecef change help message from hard coding to dynamic (#1421)
## before
```Usage: pyenv <command> [<args>]

Some useful pyenv commands are:
   commands    List all available pyenv commands
   local       Set or show the local application-specific Python version
   global      Set or show the global Python version
   shell       Set or show the shell-specific Python version
   install     Install a Python version using python-build
   uninstall   Uninstall a specific Python version
   rehash      Rehash pyenv shims (run this after installing executables)
   version     Show the current Python version and its origin
   versions    List all Python versions available to pyenv
   which       Display the full path to an executable
   whence      List all Python versions that contain the given executable

See `pyenv help <command>' for information on a specific command.
For full documentation, see: https://github.com/pyenv/pyenv#readme
```

## after
```
Usage: pyenv <command> [<args>]

Some useful pyenv commands are:
   commands    List all available pyenv commands
   local       Set or show the local application-specific Python version
   --version   Display the version of pyenv
   commands    List all available pyenv commands
   exec        Run an executable with the selected Python version
   global      Set or show the global Python version
   help        Display help for a command
   hooks       List hook scripts for a given pyenv command
   init        Configure the shell environment for pyenv
   install     Install a Python version using python-build
   local       Set or show the local application-specific Python version
   prefix      Display prefix for a Python version
   rehash      Rehash pyenv shims (run this after installing executables)
   root        Display the root directory where versions and shims are kept
   shell       Set or show the shell-specific Python version
   shims       List existing pyenv shims
   uninstall   Uninstall a specific Python version
   update      update pyenv and plugins
   version     Show the current Python version and its origin
   version-file   Detect the file that sets the current pyenv version
   version-name   Show the current Python version
   version-origin   Explain how the current Python version is set
   versions    List all Python versions available to pyenv
   whence      List all Python versions that contain the given executable
   which       Display the full path to an executable

See `pyenv help <command>' for information on a specific command.
For full documentation, see: https://github.com/pyenv/pyenv#readme
```
2019-10-16 11:47:11 -04:00