Question

Chris Angelico rosuav at gmail.com
Tue Mar 8 19:13:15 EST 2016


On Wed, Mar 9, 2016 at 10:52 AM, Steven D'Aprano <steve at pearwood.info> wrote:
>> Well, running bash on Windows is decidedly non-standard. This is like
>> installing a Python package on a Linux system and then complaining
>> that it won't run under wine. I don't think that Python should be
>> expected to provide an activate script for all possible shells the
>> user might conceivably want to use.
>
> Not "all possible shells", no. But it's not unreasonable for it to handle
> the single most popular operating system environment in the world, Windows,
> don't you think?

I'm not sure that the issue is "Windows can't use venv", but "Windows
with Git Bash can't use venv". Windows has a number of shells
available; the default one is pretty terrible but does kinda work, and
then there's PowerShell, and ports of other shells like bash. Cygwin
provides its own shell (which I think is bash), and I'm not sure if
that's the same as Git Bash installs. And then there's the difference
between the shell (the command interpreter) and the, for want of a
better name, terminal emulator (the thing that displays stuff on the
screen).

Working purely within cmd.exe and the default terminal emulator, I was
able to "py -m venv env" and then "env\scripts\activate" (note, *not*
env/bin/activate which is what I'm used to - no idea why). It seemed
to work.

Working instead in Git Bash, though, leaves me unable to activate,
because there is no bash script for venv activation. Hence, the
problem is "supporting all possible shells" (which is an enormous
challenge), rather than "supporting one of the three most popular
operating systems" (which, I agree, is well worth doing).

ChrisA



More information about the Python-list mailing list