This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author Florian.Dold
Recipients Florian.Dold
Date 2016-03-31.15:49:21
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1459439361.75.0.379052301641.issue26677@psf.upfronthosting.co.za>
In-reply-to
Content
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
History
Date User Action Args
2016-03-31 15:49:21Florian.Doldsetrecipients: + Florian.Dold
2016-03-31 15:49:21Florian.Doldsetmessageid: <1459439361.75.0.379052301641.issue26677@psf.upfronthosting.co.za>
2016-03-31 15:49:21Florian.Doldlinkissue26677 messages
2016-03-31 15:49:21Florian.Doldcreate