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 uranusjr
Recipients DamlaAltun, brett.cannon, uranusjr, vinay.sajip
Date 2019-11-28.18:22:17
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1574965338.86.0.123363253012.issue35003@roundup.psfhosted.org>
In-reply-to
Content
> Surely "on native Windows you run venv-path\Scripts\activate[.ps1], on POSIX you use source venv-path/bin/activate" isn't *that* hard for new users to grok [...]?

The if-Windows-X-else-Y part isn’t that hard; it’s the activate part that is :p

I think Brett is thinking about eliminating the manual activate part entirely, but any tool trying to automate that needs to do a lot of platform-specific checks.

---

> I've personally never come across Scripts in any other situation than virtual environments [...].

Windows use a Scripts directory to store… scripts (Setuptools terminology, i.e. console and gui script entry points). So e.g. the global pip.exe would be at "{sys.prefix}\Scripts\pip.exe" (or is it sys.exec_prefix?) `pip install --user` would also install scripts into `%APPDATA%\Programs\Python\PythonXY\Scripts`. So venv’s setup is consistent with the rest of Python.

This directory structure can be expanded from sysconfig. So the proposal in my previous comment is to record the scheme in pyvenv.cfg, so you can have something like

def read_venv_scheme(env_dir):
    with open(os.path.join(env_dir, 'pyvenv.cfg')) as f:
        for line in f:
            key, value = (p.strip() for p in line.split('='))
            if key == 'scheme':
                return value

def get_venv_environ_patch(env_dir):
    scheme = read_venv_scheme(env_dir)
    bin_dir = sysconfig.get_path('scripts', scheme=scheme, expand=False).format(base=env_dir)
    return {'VIRTUAL_ENV': env_dir, 'PATH': bin_dir}

and this would give you the appropriate value on any platform.
History
Date User Action Args
2019-11-28 18:22:18uranusjrsetrecipients: + uranusjr, brett.cannon, vinay.sajip, DamlaAltun
2019-11-28 18:22:18uranusjrsetmessageid: <1574965338.86.0.123363253012.issue35003@roundup.psfhosted.org>
2019-11-28 18:22:18uranusjrlinkissue35003 messages
2019-11-28 18:22:17uranusjrcreate