mirror of
https://github.com/pyenv/pyenv-virtualenv.git
synced 2025-11-08 11:33:55 -05:00
Compare commits
19 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6a6947659a | ||
|
|
d0c77019cc | ||
|
|
164925ca3c | ||
|
|
249759aa04 | ||
|
|
e34a8bbee4 | ||
|
|
d86fd13797 | ||
|
|
a242067435 | ||
|
|
45c73f9073 | ||
|
|
cce1b9535d | ||
|
|
1ca0c84ed6 | ||
|
|
d1a0f2c66d | ||
|
|
4776fe4e04 | ||
|
|
d27504b315 | ||
|
|
662b3e7d2f | ||
|
|
15e4f651ae | ||
|
|
856098bf55 | ||
|
|
7b34f7234e | ||
|
|
e535faea4d | ||
|
|
b5c4131993 |
@@ -1,3 +1,4 @@
|
||||
sudo: false
|
||||
install: git clone https://github.com/sstephenson/bats.git
|
||||
script: bats/bin/bats --tap test
|
||||
language: c
|
||||
|
||||
131
CHANGELOG.md
Normal file
131
CHANGELOG.md
Normal file
@@ -0,0 +1,131 @@
|
||||
## Version History
|
||||
|
||||
#### 20151006
|
||||
|
||||
* Ignore user's site-packages on ensurepip/get-pip (#89)
|
||||
* Find `python-config` from source version if current version is a virtualenv
|
||||
* Fix pyenv-virtualenv-init script for fish where command was in string and not being evaluated (#98)
|
||||
* Add foolproof for `-p` argument. (yyuu/pyenv#98)
|
||||
|
||||
#### 20150719
|
||||
|
||||
* Add support for `conda` environments created by Anaconda/Miniconda (#91)
|
||||
* Look up commands for original version as well if the environment is created with `--system-site-packages` (#62)
|
||||
* Add error message if the source version is not installed (#83)
|
||||
|
||||
#### 20150526
|
||||
|
||||
* Use `typeset -g` with `precmd_functions` (#75)
|
||||
* activate: display setup instructions only with `PYENV_VIRTUALENV_INIT=0` (#78)
|
||||
* Ignore failure of pyenv activate (#68)
|
||||
|
||||
#### 20150119
|
||||
|
||||
* Ignore errors from `pyenv-version-name` since it might fail if there is configuration error (yyuu/pyenv#291)
|
||||
* The _shell_ version set in `activate` should be unset in `deactivate` (#61)
|
||||
* Anaconda has `activate` script nevertheless it is not a virtual environment (#65)
|
||||
|
||||
#### 20141106
|
||||
|
||||
* Stop creating after `ensurepip` since it has done by `ensurepip` itself
|
||||
* Suppress some useless warnings from `pyenv virtualenv-init`
|
||||
|
||||
#### 20141012
|
||||
|
||||
* Fix warnings from `shellcheck` to improve support for POSIX sh (#40)
|
||||
* Do not allow whitespace in `VIRTUALENV_NAME` (#44)
|
||||
* Should not persist `PYENV_DEACTIVATE` after automatic deactivation (#47, #48)
|
||||
|
||||
#### 20140705
|
||||
|
||||
* Display information on auto-(de)?activation
|
||||
* Support manual (de)?activation with auto-activation enabled (#32, #34)
|
||||
* Exit as error when (de)?activation failed
|
||||
* Use https://bootstrap.pypa.io/ to install setuptools and pip
|
||||
* Create backup of original virtualenv within `$(pyenv root)/versions` when `--upgrade`
|
||||
|
||||
#### 20140615
|
||||
|
||||
* Fix incompatibility issue of `pyenv activate` and `pyenv deactivate` (#26)
|
||||
* Workaround for the issue with pyenv-which-ext (#26)
|
||||
|
||||
#### 20140614
|
||||
|
||||
* Add `pyenv virtualenv-init` to enable auto-activation feature (#24)
|
||||
* Create symlinks for executables with version suffix (yyuu/pyenv#182)
|
||||
|
||||
#### 20140602
|
||||
|
||||
* Use new style GH raw url to avoid redirects (raw.github.com -> raw.githubusercontent.com)
|
||||
* Repaired virtualenv activation and deactivation for the fish shell (#23)
|
||||
|
||||
#### 20140421
|
||||
|
||||
* Display error if `pyenv activate` was invoked as a command
|
||||
* Fix completion of `pyenv activate` (#15)
|
||||
* Use `virtualenv` instead of `pyvenv` if `-p` has given (yyuu/pyenv#158)
|
||||
|
||||
#### 20140123
|
||||
|
||||
* Add `activate` and `deactivate` to make `pyenv-virtualenv` work with [jedi](https://github.com/davidhalter/jedi) (#9)
|
||||
* Use `ensurepip` to install `pip` if it is available
|
||||
* Unset `PIP_REQUIRE_VENV` to avoid problem on the installation of `virtualenv` (#10)
|
||||
* Add tests
|
||||
|
||||
#### 20140110.1
|
||||
|
||||
* Fix install script
|
||||
|
||||
#### 20140110
|
||||
|
||||
* Support environment variables of `EZ_SETUP` and `GET_PIP`.
|
||||
* Support a short option `-p` of `virtualenv`.
|
||||
|
||||
#### 20131216
|
||||
|
||||
* Use latest release of setuptools and pip if the version not given via environment variables.
|
||||
|
||||
#### 20130622
|
||||
|
||||
* Removed bundled `virtualenv.py` script. Now pyenv-virtualenv installs `virtualenv` package into source version and then use it.
|
||||
* On Python 3.3+, use `pyvenv` as virtualenv command if `virtualenv` is not available.
|
||||
* Install setuptools and pip into environments created by `pyvenv`.
|
||||
|
||||
#### 20130614
|
||||
|
||||
* Add `pyenv virtualenvs` to list all virtualenv versions.
|
||||
* *EXPERIMENTAL*: Add `--upgrade` option to re-create virtualenv with migrating packages
|
||||
|
||||
#### 20130527
|
||||
|
||||
* Remove `python-virtualenv` which was no longer used.
|
||||
* Change the installation path of the `virtualenv.py` script. (`./libexec` -> `./libexec/pyenv-virtualenv/${VIRTUALENV_VERSION}`)
|
||||
* Download `virtualenv.py` if desired version has not been installed.
|
||||
|
||||
#### 20130507
|
||||
|
||||
* Display virtualenv information in `--help` and `--version`
|
||||
* Update virtualenv version; 1.8.4 -> 1.9.1
|
||||
|
||||
#### 20130307
|
||||
|
||||
* Rename the project; `s/python-virtualenv/pyenv-virtualenv/g`
|
||||
* The `pyenv-virtualenv` script is not depending on `python-virtualenv` now.
|
||||
`python-virtualenv` will left for compatibility and will not continue for future releases.
|
||||
* Update virtualenv version; 1.8.2 -> 1.8.4
|
||||
|
||||
#### 20130218
|
||||
|
||||
* Add pyenv 0.2.x (rbenv 0.4.x) style help messages.
|
||||
|
||||
#### 20121023
|
||||
|
||||
* Create virtualenv with exact name of python executables.
|
||||
* Changed command-line options of python-virtualenv.
|
||||
First argument should be a path to the python executable.
|
||||
* Add install script.
|
||||
|
||||
#### 20120927
|
||||
|
||||
* Initial public release.
|
||||
|
||||
151
README.md
151
README.md
@@ -1,6 +1,6 @@
|
||||
# pyenv-virtualenv
|
||||
|
||||
[](https://travis-ci.org/yyuu/pyenv-virtualenv)
|
||||
[](https://travis-ci.org/yyuu/pyenv-virtualenv)
|
||||
|
||||
pyenv-virtualenv is a [pyenv](https://github.com/yyuu/pyenv) plugin
|
||||
that provides features to manage virtualenvs and conda environments
|
||||
@@ -28,24 +28,24 @@ From inside that directory you can:
|
||||
|
||||
1. **Check out pyenv-virtualenv into plugin directory**
|
||||
|
||||
```
|
||||
$ git clone https://github.com/yyuu/pyenv-virtualenv.git ~/.pyenv/plugins/pyenv-virtualenv
|
||||
```
|
||||
```
|
||||
$ git clone https://github.com/yyuu/pyenv-virtualenv.git ~/.pyenv/plugins/pyenv-virtualenv
|
||||
```
|
||||
|
||||
2. (OPTIONAL) **Add `pyenv virtualenv-init` to your shell** to enable auto-activation of virtualenv. This is entirely optional but pretty useful.
|
||||
|
||||
```
|
||||
$ echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bash_profile
|
||||
```
|
||||
```
|
||||
$ echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bash_profile
|
||||
```
|
||||
|
||||
**Zsh note**: Modify your `~/.zshenv` file instead of `~/.bash_profile`.
|
||||
**Pyenv note**: You may also need to add 'eval "$(pyenv init -)"' to your profile if you haven't done so already.
|
||||
**Pyenv note**: You may also need to add `eval "$(pyenv init -)"` to your profile if you haven't done so already.
|
||||
|
||||
3. **Restart your shell to enable pyenv-virtualenv**
|
||||
|
||||
```
|
||||
$ exec "$SHELL"
|
||||
```
|
||||
```
|
||||
$ exec "$SHELL"
|
||||
```
|
||||
|
||||
|
||||
### Installing with Homebrew (for OS X users)
|
||||
@@ -68,8 +68,12 @@ Or, if you would like to install the latest development release:
|
||||
$ brew install --HEAD pyenv-virtualenv
|
||||
```
|
||||
|
||||
After installation, you'll still need to add `eval "$(pyenv virtualenv-init -)"` to your profile (as stated in the caveats).
|
||||
You'll only ever have to do this once.
|
||||
After installation, you'll still need to add
|
||||
```
|
||||
eval "$(pyenv init -)"
|
||||
eval "$(pyenv virtualenv-init -)"
|
||||
```
|
||||
to your profile (as stated in the caveats). You'll only ever have to do this once.
|
||||
|
||||
|
||||
## Usage
|
||||
@@ -205,127 +209,8 @@ You can set certain environment variables to control pyenv-virtualenv.
|
||||
|
||||
## Version History
|
||||
|
||||
#### 20150719
|
||||
See [CHANGELOG.md](CHANGELOG.md).
|
||||
|
||||
* Add support for `conda` environments created by Anaconda/Miniconda (#91)
|
||||
* Look up commands for original version as well if the environment is created with `--system-site-packages` (#62)
|
||||
* Add error message if the source version is not installed (#83)
|
||||
|
||||
#### 20150526
|
||||
|
||||
* Use `typeset -g` with `precmd_functions` (#75)
|
||||
* activate: display setup instructions only with `PYENV_VIRTUALENV_INIT=0` (#78)
|
||||
* Ignore failure of pyenv activate (#68)
|
||||
|
||||
#### 20150119
|
||||
|
||||
* Ignore errors from `pyenv-version-name` since it might fail if there is configuration error (yyuu/pyenv#291)
|
||||
* The _shell_ version set in `activate` should be unset in `deactivate` (#61)
|
||||
* Anaconda has `activate` script nevertheless it is not a virtual environment (#65)
|
||||
|
||||
#### 20141106
|
||||
|
||||
* Stop creating after `ensurepip` since it has done by `ensurepip` itself
|
||||
* Suppress some useless warnings from `pyenv virtualenv-init`
|
||||
|
||||
#### 20141012
|
||||
|
||||
* Fix warnings from `shellcheck` to improve support for POSIX sh (#40)
|
||||
* Do not allow whitespace in `VIRTUALENV_NAME` (#44)
|
||||
* Should not persist `PYENV_DEACTIVATE` after automatic deactivation (#47, #48)
|
||||
|
||||
#### 20140705
|
||||
|
||||
* Display information on auto-(de)?activation
|
||||
* Support manual (de)?activation with auto-activation enabled (#32, #34)
|
||||
* Exit as error when (de)?activation failed
|
||||
* Use https://bootstrap.pypa.io/ to install setuptools and pip
|
||||
* Create backup of original virtualenv within `$(pyenv root)/versions` when `--upgrade`
|
||||
|
||||
#### 20140615
|
||||
|
||||
* Fix incompatibility issue of `pyenv activate` and `pyenv deactivate` (#26)
|
||||
* Workaround for the issue with pyenv-which-ext (#26)
|
||||
|
||||
#### 20140614
|
||||
|
||||
* Add `pyenv virtualenv-init` to enable auto-activation feature (#24)
|
||||
* Create symlinks for executables with version suffix (yyuu/pyenv#182)
|
||||
|
||||
#### 20140602
|
||||
|
||||
* Use new style GH raw url to avoid redirects (raw.github.com -> raw.githubusercontent.com)
|
||||
* Repaired virtualenv activation and deactivation for the fish shell (#23)
|
||||
|
||||
#### 20140421
|
||||
|
||||
* Display error if `pyenv activate` was invoked as a command
|
||||
* Fix completion of `pyenv activate` (#15)
|
||||
* Use `virtualenv` instead of `pyvenv` if `-p` has given (yyuu/pyenv#158)
|
||||
|
||||
#### 20140123
|
||||
|
||||
* Add `activate` and `deactivate` to make `pyenv-virtualenv` work with [jedi](https://github.com/davidhalter/jedi) (#9)
|
||||
* Use `ensurepip` to install `pip` if it is available
|
||||
* Unset `PIP_REQUIRE_VENV` to avoid problem on the installation of `virtualenv` (#10)
|
||||
* Add tests
|
||||
|
||||
#### 20140110.1
|
||||
|
||||
* Fix install script
|
||||
|
||||
#### 20140110
|
||||
|
||||
* Support environment variables of `EZ_SETUP` and `GET_PIP`.
|
||||
* Support a short option `-p` of `virtualenv`.
|
||||
|
||||
#### 20131216
|
||||
|
||||
* Use latest release of setuptools and pip if the version not given via environment variables.
|
||||
|
||||
#### 20130622
|
||||
|
||||
* Removed bundled `virtualenv.py` script. Now pyenv-virtualenv installs `virtualenv` package into source version and then use it.
|
||||
* On Python 3.3+, use `pyvenv` as virtualenv command if `virtualenv` is not available.
|
||||
* Install setuptools and pip into environments created by `pyvenv`.
|
||||
|
||||
#### 20130614
|
||||
|
||||
* Add `pyenv virtualenvs` to list all virtualenv versions.
|
||||
* *EXPERIMENTAL*: Add `--upgrade` option to re-create virtualenv with migrating packages
|
||||
|
||||
#### 20130527
|
||||
|
||||
* Remove `python-virtualenv` which was no longer used.
|
||||
* Change the installation path of the `virtualenv.py` script. (`./libexec` -> `./libexec/pyenv-virtualenv/${VIRTUALENV_VERSION}`)
|
||||
* Download `virtualenv.py` if desired version has not been installed.
|
||||
|
||||
#### 20130507
|
||||
|
||||
* Display virtualenv information in `--help` and `--version`
|
||||
* Update virtualenv version; 1.8.4 -> 1.9.1
|
||||
|
||||
#### 20130307
|
||||
|
||||
* Rename the project; `s/python-virtualenv/pyenv-virtualenv/g`
|
||||
* The `pyenv-virtualenv` script is not depending on `python-virtualenv` now.
|
||||
`python-virtualenv` will left for compatibility and will not continue for future releases.
|
||||
* Update virtualenv version; 1.8.2 -> 1.8.4
|
||||
|
||||
#### 20130218
|
||||
|
||||
* Add pyenv 0.2.x (rbenv 0.4.x) style help messages.
|
||||
|
||||
#### 20121023
|
||||
|
||||
* Create virtualenv with exact name of python executables.
|
||||
* Changed command-line options of python-virtualenv.
|
||||
First argument should be a path to the python executable.
|
||||
* Add install script.
|
||||
|
||||
#### 20120927
|
||||
|
||||
* Initial public release.
|
||||
|
||||
### License
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
# -f/--force Install even if the version appears to be installed already
|
||||
#
|
||||
|
||||
PYENV_VIRTUALENV_VERSION="20150719"
|
||||
PYENV_VIRTUALENV_VERSION="20151006"
|
||||
|
||||
set -e
|
||||
[ -n "$PYENV_DEBUG" ] && set -x
|
||||
@@ -157,7 +157,7 @@ build_package_ez_setup() {
|
||||
http get "${EZ_SETUP_URL}"
|
||||
fi
|
||||
} 1> "${ez_setup}"
|
||||
pyenv-exec python "${ez_setup}" ${EZ_SETUP_OPTS} 1>&2 || {
|
||||
pyenv-exec python -s "${ez_setup}" ${EZ_SETUP_OPTS} 1>&2 || {
|
||||
echo "error: failed to install setuptools via ez_setup.py" >&2
|
||||
return 1
|
||||
}
|
||||
@@ -175,14 +175,14 @@ build_package_get_pip() {
|
||||
http get "${GET_PIP_URL}"
|
||||
fi
|
||||
} 1> "${get_pip}"
|
||||
pyenv-exec python "${get_pip}" ${GET_PIP_OPTS} 1>&2 || {
|
||||
pyenv-exec python -s "${get_pip}" ${GET_PIP_OPTS} 1>&2 || {
|
||||
echo "error: failed to install pip via get-pip.py" >&2
|
||||
return 1
|
||||
}
|
||||
}
|
||||
|
||||
build_package_ensurepip() {
|
||||
pyenv-exec python -m ensurepip 2>/dev/null || build_package_get_pip "$@" || return 1
|
||||
pyenv-exec python -s -m ensurepip 2>/dev/null || build_package_get_pip "$@" || return 1
|
||||
}
|
||||
|
||||
prepare_requirements() {
|
||||
@@ -318,9 +318,28 @@ if [ -n "${USE_PYVENV}" ]; then
|
||||
# Unset some arguments not supported by pyvenv
|
||||
unset QUIET
|
||||
unset VERBOSE
|
||||
if [ -n "${VIRTUALENV_PYTHON}" ]; then
|
||||
echo "pyenv-virtualenv: \`--python=${VIRTUALENV_PYTHON}' is not supported by pyvenv." 1>&2
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
if [ -n "${VIRTUALENV_PYTHON}" ]; then
|
||||
VIRTUALENV_OPTIONS[${#VIRTUALENV_OPTIONS[*]}]="--python=${VIRTUALENV_PYTHON}"
|
||||
if [[ "${VIRTUALENV_PYTHON}" == "${VIRTUALENV_PYTHON##*/}" ]] || [[ "${VIRTUALENV_PYTHON}" == "${PYENV_ROOT}/shims/"* ]]; then
|
||||
python="$(pyenv-which "${VIRTUALENV_PYTHON##*/}" 2>/dev/null || true)"
|
||||
if [ -x "${python}" ]; then
|
||||
VIRTUALENV_OPTIONS[${#VIRTUALENV_OPTIONS[*]}]="--python=${python}"
|
||||
else
|
||||
python="$(PYENV_VERSION="$(pyenv-whence "${VIRTUALENV_PYTHON##*/}" 2>/dev/null | tail -n 1 || true)" pyenv-which "${VIRTUALENV_PYTHON##*/}" 2>/dev/null || true)"
|
||||
if [ -x "${python}" ]; then
|
||||
VIRTUALENV_OPTIONS[${#VIRTUALENV_OPTIONS[*]}]="--python=${python}"
|
||||
else
|
||||
echo "pyenv-virtualenv: \`${VIRTUALENV_PYTHON##*/}' is not installed in pyenv." 1>&2
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
else
|
||||
VIRTUALENV_OPTIONS[${#VIRTUALENV_OPTIONS[*]}]="--python=${VIRTUALENV_PYTHON}"
|
||||
fi
|
||||
fi
|
||||
if [ -z "${HAS_VIRTUALENV}" ]; then
|
||||
VIRTUALENV_VERSION="==${VIRTUALENV_VERSION}"
|
||||
|
||||
@@ -78,7 +78,7 @@ fish )
|
||||
function _pyenv_virtualenv_hook --on-event fish_prompt;
|
||||
set -l PYENV_PREFIX (pyenv prefix 2>/dev/null; or true)
|
||||
if [ -n "\$PYENV_ACTIVATE" ]
|
||||
if [ "(pyenv version-name 2>/dev/null; or true)" = "system" ]
|
||||
if [ (pyenv version-name 2>/dev/null; or true) = "system" ]
|
||||
pyenv deactivate --no-error --verbose
|
||||
set -e PYENV_DEACTIVATE
|
||||
return 0
|
||||
|
||||
14
etc/pyenv.d/which/python-config.bash
Normal file
14
etc/pyenv.d/which/python-config.bash
Normal file
@@ -0,0 +1,14 @@
|
||||
# some of libraries require `python-config` in PATH to build native extensions.
|
||||
# as a workaround, this hook will try to find the executable from the source
|
||||
# version of the virtualenv.
|
||||
# https://github.com/yyuu/pyenv/issues/397
|
||||
|
||||
if [ ! -x "${PYENV_COMMAND_PATH}" ] && [[ "${PYENV_COMMAND_PATH##*/}" == "python"*"-config" ]]; then
|
||||
virtualenv_prefix="$(pyenv-virtualenv-prefix 2>/dev/null || true)"
|
||||
if [ -d "${virtualenv_prefix}" ]; then
|
||||
virtualenv_command_path="${virtualenv_prefix}/bin/${PYENV_COMMAND_PATH##*/}"
|
||||
if [ -x "${virtualenv_command_path}" ]; then
|
||||
PYENV_COMMAND_PATH="${virtualenv_command_path}"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
@@ -85,7 +85,7 @@ setenv PYENV_VIRTUALENV_INIT 1;
|
||||
function _pyenv_virtualenv_hook --on-event fish_prompt;
|
||||
set -l PYENV_PREFIX (pyenv prefix 2>/dev/null; or true)
|
||||
if [ -n "\$PYENV_ACTIVATE" ]
|
||||
if [ "(pyenv version-name 2>/dev/null; or true)" = "system" ]
|
||||
if [ (pyenv version-name 2>/dev/null; or true) = "system" ]
|
||||
pyenv deactivate --no-error --verbose
|
||||
set -e PYENV_DEACTIVATE
|
||||
return 0
|
||||
|
||||
@@ -26,7 +26,7 @@ unstub_pyenv() {
|
||||
stub pyenv-prefix " : echo '${PYENV_ROOT}/versions/${PYENV_VERSION}'"
|
||||
stub pyenv-prefix " : echo '${PYENV_ROOT}/versions/${PYENV_VERSION}'"
|
||||
stub pyenv-exec "pyvenv ${PYENV_ROOT}/versions/venv : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\";mkdir -p \${PYENV_ROOT}/versions/venv/bin"
|
||||
stub pyenv-exec "python -m ensurepip : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\";touch \${PYENV_ROOT}/versions/venv/bin/pip"
|
||||
stub pyenv-exec "python -s -m ensurepip : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\";touch \${PYENV_ROOT}/versions/venv/bin/pip"
|
||||
|
||||
remove_executable "3.4.1" "virtualenv"
|
||||
create_executable "3.4.1" "pyvenv"
|
||||
@@ -36,7 +36,7 @@ unstub_pyenv() {
|
||||
assert_success
|
||||
assert_output <<OUT
|
||||
PYENV_VERSION=3.4.1 pyvenv ${PYENV_ROOT}/versions/venv
|
||||
PYENV_VERSION=venv python -m ensurepip
|
||||
PYENV_VERSION=venv python -s -m ensurepip
|
||||
rehashed
|
||||
OUT
|
||||
assert [ -e "${PYENV_ROOT}/versions/venv/bin/pip" ]
|
||||
@@ -51,8 +51,8 @@ OUT
|
||||
stub pyenv-prefix " : echo '${PYENV_ROOT}/versions/${PYENV_VERSION}'"
|
||||
stub pyenv-prefix " : echo '${PYENV_ROOT}/versions/${PYENV_VERSION}'"
|
||||
stub pyenv-exec "pyvenv ${PYENV_ROOT}/versions/venv : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\";mkdir -p \${PYENV_ROOT}/versions/venv/bin"
|
||||
stub pyenv-exec "python -m ensurepip : false"
|
||||
stub pyenv-exec "python */get-pip.py : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\";touch \${PYENV_ROOT}/versions/venv/bin/pip"
|
||||
stub pyenv-exec "python -s -m ensurepip : false"
|
||||
stub pyenv-exec "python -s */get-pip.py : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\";touch \${PYENV_ROOT}/versions/venv/bin/pip"
|
||||
stub curl true
|
||||
|
||||
remove_executable "3.3.5" "virtualenv"
|
||||
@@ -64,7 +64,7 @@ OUT
|
||||
assert_output <<OUT
|
||||
PYENV_VERSION=3.3.5 pyvenv ${PYENV_ROOT}/versions/venv
|
||||
Installing pip from https://bootstrap.pypa.io/get-pip.py...
|
||||
PYENV_VERSION=venv python ${TMP}/pyenv/cache/get-pip.py
|
||||
PYENV_VERSION=venv python -s ${TMP}/pyenv/cache/get-pip.py
|
||||
rehashed
|
||||
OUT
|
||||
assert [ -e "${PYENV_ROOT}/versions/venv/bin/pip" ]
|
||||
|
||||
101
test/python.bats
Normal file
101
test/python.bats
Normal file
@@ -0,0 +1,101 @@
|
||||
#!/usr/bin/env bats
|
||||
|
||||
load test_helper
|
||||
|
||||
setup() {
|
||||
export PYENV_ROOT="${TMP}/pyenv"
|
||||
export PYENV_VERSION="2.7.8"
|
||||
create_executable "${PYENV_VERSION}" "virtualenv"
|
||||
remove_executable "${PYENV_VERSION}" "pyvenv"
|
||||
stub pyenv-prefix "echo '${PYENV_ROOT}/versions/${PYENV_VERSION}'"
|
||||
stub pyenv-prefix "echo '${PYENV_ROOT}/versions/${PYENV_VERSION}'"
|
||||
stub pyenv-prefix "echo '${PYENV_ROOT}/versions/${PYENV_VERSION}'"
|
||||
stub pyenv-hooks "virtualenv : echo"
|
||||
stub pyenv-rehash " : true"
|
||||
stub pyenv-version-name "echo \${PYENV_VERSION}"
|
||||
stub curl true
|
||||
}
|
||||
|
||||
teardown() {
|
||||
unstub curl
|
||||
unstub pyenv-version-name
|
||||
unstub pyenv-prefix
|
||||
unstub pyenv-hooks
|
||||
unstub pyenv-rehash
|
||||
rm -fr "$TMP"/*
|
||||
}
|
||||
|
||||
@test "resolve python executable from enabled version" {
|
||||
remove_executable "2.7.7" "python2.7"
|
||||
create_executable "2.7.8" "python2.7"
|
||||
remove_executable "2.7.9" "python2.7"
|
||||
|
||||
stub pyenv-exec "virtualenv --verbose --python=${PYENV_ROOT}/versions/2.7.8/bin/python2.7 ${PYENV_ROOT}/versions/venv : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
||||
stub pyenv-exec "python -s -m ensurepip : true"
|
||||
stub pyenv-which "python2.7 : echo ${PYENV_ROOT}/versions/2.7.8/bin/python2.7"
|
||||
|
||||
run pyenv-virtualenv --verbose --python=python2.7 venv
|
||||
|
||||
assert_output <<OUT
|
||||
PYENV_VERSION=2.7.8 virtualenv --verbose --python=${PYENV_ROOT}/versions/2.7.8/bin/python2.7 ${PYENV_ROOT}/versions/venv
|
||||
OUT
|
||||
assert_success
|
||||
|
||||
unstub pyenv-which
|
||||
unstub pyenv-exec
|
||||
|
||||
remove_executable "2.7.7" "python2.7"
|
||||
remove_executable "2.7.8" "python2.7"
|
||||
remove_executable "2.7.9" "python2.7"
|
||||
}
|
||||
|
||||
@test "resolve python executable from other versions" {
|
||||
remove_executable "2.7.7" "python2.7"
|
||||
remove_executable "2.7.8" "python2.7"
|
||||
create_executable "2.7.9" "python2.7"
|
||||
|
||||
stub pyenv-exec "virtualenv --verbose --python=${PYENV_ROOT}/versions/2.7.9/bin/python2.7 ${PYENV_ROOT}/versions/venv : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
||||
stub pyenv-exec "python -s -m ensurepip : true"
|
||||
stub pyenv-which "python2.7 : false"
|
||||
stub pyenv-whence "python2.7 : echo 2.7.7; echo 2.7.8; echo 2.7.9"
|
||||
stub pyenv-which "python2.7 : echo ${PYENV_ROOT}/versions/2.7.9/bin/python2.7"
|
||||
|
||||
run pyenv-virtualenv --verbose --python=python2.7 venv
|
||||
|
||||
assert_output <<OUT
|
||||
PYENV_VERSION=2.7.8 virtualenv --verbose --python=${PYENV_ROOT}/versions/2.7.9/bin/python2.7 ${PYENV_ROOT}/versions/venv
|
||||
OUT
|
||||
assert_success
|
||||
|
||||
unstub pyenv-which
|
||||
unstub pyenv-whence
|
||||
unstub pyenv-exec
|
||||
|
||||
remove_executable "2.7.7" "python2.7"
|
||||
remove_executable "2.7.8" "python2.7"
|
||||
remove_executable "2.7.9" "python2.7"
|
||||
}
|
||||
|
||||
@test "cannot resolve python executable" {
|
||||
remove_executable "2.7.7" "python2.7"
|
||||
remove_executable "2.7.8" "python2.7"
|
||||
remove_executable "2.7.9" "python2.7"
|
||||
|
||||
stub pyenv-which "python2.7 : false"
|
||||
stub pyenv-whence "python2.7 : false"
|
||||
stub pyenv-which "python2.7 : false"
|
||||
|
||||
run pyenv-virtualenv --verbose --python=python2.7 venv
|
||||
|
||||
assert_output <<OUT
|
||||
pyenv-virtualenv: \`python2.7' is not installed in pyenv.
|
||||
OUT
|
||||
assert_failure
|
||||
|
||||
unstub pyenv-which
|
||||
unstub pyenv-whence
|
||||
|
||||
remove_executable "2.7.7" "python2.7"
|
||||
remove_executable "2.7.8" "python2.7"
|
||||
remove_executable "2.7.9" "python2.7"
|
||||
}
|
||||
@@ -26,7 +26,7 @@ unstub_pyenv() {
|
||||
stub pyenv-prefix " : echo '${PYENV_ROOT}/versions/${PYENV_VERSION}'"
|
||||
stub pyenv-prefix " : echo '${PYENV_ROOT}/versions/${PYENV_VERSION}'"
|
||||
stub pyenv-exec "pyvenv ${PYENV_ROOT}/versions/venv : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
||||
stub pyenv-exec "python -m ensurepip : true"
|
||||
stub pyenv-exec "python -s -m ensurepip : true"
|
||||
|
||||
remove_executable "3.4.1" "virtualenv"
|
||||
create_executable "3.4.1" "pyvenv"
|
||||
@@ -49,7 +49,7 @@ OUT
|
||||
stub pyenv-prefix " : echo '${PYENV_ROOT}/versions/${PYENV_VERSION}'"
|
||||
stub pyenv-prefix " : echo '${PYENV_ROOT}/versions/${PYENV_VERSION}'"
|
||||
stub pyenv-exec "virtualenv ${PYENV_ROOT}/versions/venv : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
||||
stub pyenv-exec "python -m ensurepip : true"
|
||||
stub pyenv-exec "python -s -m ensurepip : true"
|
||||
|
||||
create_executable "3.4.1" "virtualenv"
|
||||
create_executable "3.4.1" "pyvenv"
|
||||
@@ -73,8 +73,8 @@ OUT
|
||||
stub pyenv-prefix " : echo '${PYENV_ROOT}/versions/${PYENV_VERSION}'"
|
||||
stub pyenv-exec "pip install virtualenv : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
||||
stub pyenv-exec "virtualenv ${PYENV_ROOT}/versions/venv : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
||||
stub pyenv-exec "python -m ensurepip : false"
|
||||
stub pyenv-exec "python */get-pip.py : true"
|
||||
stub pyenv-exec "python -s -m ensurepip : false"
|
||||
stub pyenv-exec "python -s */get-pip.py : true"
|
||||
stub curl true
|
||||
|
||||
remove_executable "3.2.1" "virtualenv"
|
||||
@@ -101,20 +101,20 @@ OUT
|
||||
stub pyenv-prefix " : echo '${PYENV_ROOT}/versions/${PYENV_VERSION}'"
|
||||
stub pyenv-prefix " : echo '${PYENV_ROOT}/versions/${PYENV_VERSION}'"
|
||||
stub pyenv-exec "pip install virtualenv : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
||||
stub pyenv-exec "virtualenv --python=python3 ${PYENV_ROOT}/versions/venv : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
||||
stub pyenv-exec "python -m ensurepip : true"
|
||||
stub pyenv-exec "virtualenv --python=${TMP}/python3 ${PYENV_ROOT}/versions/venv : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
||||
stub pyenv-exec "python -s -m ensurepip : true"
|
||||
|
||||
remove_executable "3.4.1" "virtualenv"
|
||||
create_executable "3.4.1" "pyvenv"
|
||||
|
||||
run pyenv-virtualenv -p python3 venv
|
||||
run pyenv-virtualenv -p ${TMP}/python3 venv
|
||||
|
||||
assert_success
|
||||
assert_output <<OUT
|
||||
PYENV_VERSION=3.4.1 pip install virtualenv
|
||||
PYENV_VERSION=3.4.1 virtualenv --python=python3 ${PYENV_ROOT}/versions/venv
|
||||
PYENV_VERSION=3.4.1 virtualenv --python=${TMP}/python3 ${PYENV_ROOT}/versions/venv
|
||||
rehashed
|
||||
OUT
|
||||
assert_success
|
||||
|
||||
unstub_pyenv
|
||||
unstub pyenv-exec
|
||||
@@ -126,20 +126,20 @@ OUT
|
||||
stub pyenv-prefix " : echo '${PYENV_ROOT}/versions/${PYENV_VERSION}'"
|
||||
stub pyenv-prefix " : echo '${PYENV_ROOT}/versions/${PYENV_VERSION}'"
|
||||
stub pyenv-exec "pip install virtualenv : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
||||
stub pyenv-exec "virtualenv --python=python3 ${PYENV_ROOT}/versions/venv : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
||||
stub pyenv-exec "python -m ensurepip : true"
|
||||
stub pyenv-exec "virtualenv --python=${TMP}/python3 ${PYENV_ROOT}/versions/venv : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
||||
stub pyenv-exec "python -s -m ensurepip : true"
|
||||
|
||||
remove_executable "3.4.1" "virtualenv"
|
||||
create_executable "3.4.1" "pyvenv"
|
||||
|
||||
run pyenv-virtualenv --python=python3 venv
|
||||
run pyenv-virtualenv --python=${TMP}/python3 venv
|
||||
|
||||
assert_success
|
||||
assert_output <<OUT
|
||||
PYENV_VERSION=3.4.1 pip install virtualenv
|
||||
PYENV_VERSION=3.4.1 virtualenv --python=python3 ${PYENV_ROOT}/versions/venv
|
||||
PYENV_VERSION=3.4.1 virtualenv --python=${TMP}/python3 ${PYENV_ROOT}/versions/venv
|
||||
rehashed
|
||||
OUT
|
||||
assert_success
|
||||
|
||||
unstub_pyenv
|
||||
unstub pyenv-exec
|
||||
@@ -152,8 +152,8 @@ OUT
|
||||
stub pyenv-prefix " : echo '${PYENV_ROOT}/versions/${PYENV_VERSION}'"
|
||||
stub pyenv-exec "pip install virtualenv : echo PIP_REQUIRE_VENV=\${PIP_REQUIRE_VENV} PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
||||
stub pyenv-exec "virtualenv ${PYENV_ROOT}/versions/venv : echo PIP_REQUIRE_VENV=\${PIP_REQUIRE_VENV} PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
||||
stub pyenv-exec "python -m ensurepip : false"
|
||||
stub pyenv-exec "python */get-pip.py : true"
|
||||
stub pyenv-exec "python -s -m ensurepip : false"
|
||||
stub pyenv-exec "python -s */get-pip.py : true"
|
||||
stub curl true
|
||||
|
||||
remove_executable "3.2.1" "virtualenv"
|
||||
|
||||
@@ -4,7 +4,7 @@ load test_helper
|
||||
|
||||
setup() {
|
||||
export PYENV_ROOT="${TMP}/pyenv"
|
||||
export PYENV_VIRTUALENV_VERSION="20150719"
|
||||
export PYENV_VIRTUALENV_VERSION="20151006"
|
||||
}
|
||||
|
||||
@test "display virtualenv version" {
|
||||
|
||||
@@ -27,8 +27,8 @@ unstub_pyenv() {
|
||||
export PYENV_VERSION="3.2.1"
|
||||
stub_pyenv "${PYENV_VERSION}"
|
||||
stub pyenv-exec "virtualenv ${PYENV_ROOT}/versions/venv : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
||||
stub pyenv-exec "python -m ensurepip : false"
|
||||
stub pyenv-exec "python */get-pip.py : true"
|
||||
stub pyenv-exec "python -s -m ensurepip : false"
|
||||
stub pyenv-exec "python -s */get-pip.py : true"
|
||||
stub curl true
|
||||
|
||||
run pyenv-virtualenv "3.2.1" "venv"
|
||||
@@ -50,8 +50,8 @@ OUT
|
||||
stub_pyenv "${PYENV_VERSION}"
|
||||
stub pyenv-version-name "echo \${PYENV_VERSION}"
|
||||
stub pyenv-exec "virtualenv ${PYENV_ROOT}/versions/venv : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
||||
stub pyenv-exec "python -m ensurepip : false"
|
||||
stub pyenv-exec "python */get-pip.py : true"
|
||||
stub pyenv-exec "python -s -m ensurepip : false"
|
||||
stub pyenv-exec "python -s */get-pip.py : true"
|
||||
stub curl true
|
||||
|
||||
run pyenv-virtualenv venv
|
||||
@@ -73,19 +73,19 @@ OUT
|
||||
export PYENV_VERSION="3.2.1"
|
||||
stub_pyenv "${PYENV_VERSION}"
|
||||
stub pyenv-version-name "echo \${PYENV_VERSION}"
|
||||
stub pyenv-exec "virtualenv --verbose --python=python ${PYENV_ROOT}/versions/venv : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
||||
stub pyenv-exec "python -m ensurepip : false"
|
||||
stub pyenv-exec "python */get-pip.py : true"
|
||||
stub pyenv-exec "virtualenv --verbose --python=${TMP}/python ${PYENV_ROOT}/versions/venv : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
||||
stub pyenv-exec "python -s -m ensurepip : false"
|
||||
stub pyenv-exec "python -s */get-pip.py : true"
|
||||
stub curl true
|
||||
|
||||
run pyenv-virtualenv -v -p python venv
|
||||
run pyenv-virtualenv -v -p ${TMP}/python venv
|
||||
|
||||
assert_success
|
||||
assert_output <<OUT
|
||||
PYENV_VERSION=3.2.1 virtualenv --verbose --python=python ${PYENV_ROOT}/versions/venv
|
||||
PYENV_VERSION=3.2.1 virtualenv --verbose --python=${TMP}/python ${PYENV_ROOT}/versions/venv
|
||||
Installing pip from https://bootstrap.pypa.io/get-pip.py...
|
||||
rehashed
|
||||
OUT
|
||||
assert_success
|
||||
|
||||
unstub_pyenv
|
||||
unstub pyenv-version-name
|
||||
@@ -97,19 +97,19 @@ OUT
|
||||
export PYENV_VERSION="3.2.1"
|
||||
stub_pyenv "${PYENV_VERSION}"
|
||||
stub pyenv-version-name "echo \${PYENV_VERSION}"
|
||||
stub pyenv-exec "virtualenv --verbose --python=python ${PYENV_ROOT}/versions/venv : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
||||
stub pyenv-exec "python -m ensurepip : false"
|
||||
stub pyenv-exec "python */get-pip.py : true"
|
||||
stub pyenv-exec "virtualenv --verbose --python=${TMP}/python ${PYENV_ROOT}/versions/venv : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
||||
stub pyenv-exec "python -s -m ensurepip : false"
|
||||
stub pyenv-exec "python -s */get-pip.py : true"
|
||||
stub curl true
|
||||
|
||||
run pyenv-virtualenv --verbose --python=python venv
|
||||
run pyenv-virtualenv --verbose --python=${TMP}/python venv
|
||||
|
||||
assert_success
|
||||
assert_output <<OUT
|
||||
PYENV_VERSION=3.2.1 virtualenv --verbose --python=python ${PYENV_ROOT}/versions/venv
|
||||
PYENV_VERSION=3.2.1 virtualenv --verbose --python=${TMP}/python ${PYENV_ROOT}/versions/venv
|
||||
Installing pip from https://bootstrap.pypa.io/get-pip.py...
|
||||
rehashed
|
||||
OUT
|
||||
assert_success
|
||||
|
||||
unstub_pyenv
|
||||
unstub pyenv-version-name
|
||||
|
||||
Reference in New Issue
Block a user