xonfig
Clean install (inside a temp virtualenv), started as xonsh --no-rc
Details
$ xonfig
+------------------+----------------------+
| xonsh | 0.9.13.dev1 |
| Git SHA | 9f7ccc65 |
| Commit Date | Oct 15 17:14:50 2019 |
| Python | 3.6.9 |
| PLY | 3.11 |
| have readline | True |
| prompt toolkit | 3.0.3 |
| shell type | prompt_toolkit2 |
| pygments | 2.5.2 |
| on posix | True |
| on linux | True |
| distro | unknown |
| on darwin | False |
| on windows | False |
| on cygwin | False |
| on msys2 | False |
| is superuser | False |
| default encoding | utf-8 |
| xonsh encoding | utf-8 |
| encoding errors | surrogateescape |
+------------------+----------------------+
Expected Behavior
The old virtualenv should be deactivated and the new virtualenv should be activated
Current Behavior
An error message is shown, old virtualenv is deactivated but new virtualenv isn't activated.
Steps to Reproduce
Open 2 xonsh instances.
In xonsh instance 1:
$ xontrib load vox
$ vox create foo
$ vox create bar
$ vox activate foo
In xonsh instance 2:
or just remove or rename the virtualenv directory directly.
Back in xonsh instance 1:
$ vox activate bar
This environment doesn't exist. Create it with "vox new bar".
Note that a second vox activate bar does succeed (as the foo virtualenv has been deactivated by the first attempt):
$ vox activate bar
Activated "bar".
Additional info
Some quick debugging seems to indicate the problem is due to https://github.com/xonsh/xonsh/blob/master/xontrib/voxapi.py#L288 , the ve.bin dir doesn't exist (obviously, the virtualenv got removed ;) ) so the else: part of the for loop gets triggered, raising a KeyError. This gets caught by the except KeyError: part in cmd_activate() ( https://github.com/xonsh/xonsh/blob/master/xontrib/vox.py#L161 ).
For community
⬇️ Please click the 👍 reaction instead of leaving a +1 or 👍 comment
xonfig
Clean install (inside a temp virtualenv), started as
xonsh --no-rcDetails
Expected Behavior
The old virtualenv should be deactivated and the new virtualenv should be activated
Current Behavior
An error message is shown, old virtualenv is deactivated but new virtualenv isn't activated.
Steps to Reproduce
Open 2 xonsh instances.
In xonsh instance 1:
In xonsh instance 2:
or just remove or rename the virtualenv directory directly.
Back in xonsh instance 1:
Note that a second
vox activate bardoes succeed (as thefoovirtualenv has been deactivated by the first attempt):Additional info
Some quick debugging seems to indicate the problem is due to https://github.com/xonsh/xonsh/blob/master/xontrib/voxapi.py#L288 , the
ve.bindir doesn't exist (obviously, the virtualenv got removed ;) ) so theelse:part of the for loop gets triggered, raising aKeyError. This gets caught by theexcept KeyError:part incmd_activate()( https://github.com/xonsh/xonsh/blob/master/xontrib/vox.py#L161 ).For community
⬇️ Please click the 👍 reaction instead of leaving a
+1or 👍 comment