[New-bugs-announce] [issue26677] pyvenv: activate.fish breaks $PATH for bash scripts
Florian Dold
report at bugs.python.org
Thu Mar 31 11:49:21 EDT 2016
New submission from Florian Dold:
When sourcing the activate script from bash, $PATH is restored from
$_OLD_VIRTUAL_PATH. If bash was invoked from fish (e.g. when running a shell script), and a virtualenv was activated from fish via activate.fish, the
$_OLD_VIRTUAL_PATH will contain path separated by the ascii record separator char (chr(30)), since this is how the fish shell stores arrays.
But the activate script for bash will then set $PATH to $_OLD_VIRTUAL_PATH, which breaks most bash scripts.
Instead the activate scripts should differentiate between
$_OLD_BASH_VIRTUAL_PATH
and
$_OLD_FISH_VIRTUAL_PATH
or the activate.fish should take care to replace chr(30) with colons before it sets $_OLD_VIRTUAL_PATH.
bash$ pyvenv my-venv
bash$ fish
fish$ . my-venv/bin/activate.fish
fish$ bash
bash$ . my-venv/bin/activate
# $PATH is now broken, since it contains record separators instead of colons to separate paths
----------
components: Library (Lib)
messages: 262696
nosy: Florian.Dold
priority: normal
severity: normal
status: open
title: pyvenv: activate.fish breaks $PATH for bash scripts
versions: Python 3.5
_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue26677>
_______________________________________
More information about the New-bugs-announce
mailing list