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 <rep...@bugs.python.org> <http://bugs.python.org/issue26677> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com