New submission from Dave Jones:
While attempting to diagnose something (unrelated to this issue) under python
3.6, I used the following steps to clone and build a non-root python
$ mkdir py36
$ hg clone https://hg.python.org/cpython
$ cd cpython
$ hg update 3.6
$ ./configure --prefix=/home/pi/py36
$ make install
Afterwards I attempted to set up a venv for further testing:
$ /home/pi/py36/bin/python3 -m venv py36env
This succeeded but, unfortunately, activating the venv proved impossible as the
"activate" script was missing from its "bin" sub-dir.
After a bit of investigation it appears that "make install" had copied
"Lib/venv/scripts/posix" but not "Lib/venv/scripts/common" into the
installation, hence the templates for "activate.csh" and "activate.fish" are
present, but not the "activate" template.
I had a search around for related issues but only found #22343 which explains
why "activate" is no longer present (because it's moved from scripts/posix/ to
scripts/common/) but I don't think is responsible for common not getting copied
by "make install".
It appears adding "venv/scripts/common" to LIBSUBDIRS in Makefile.pre.in fixes
the issue (as in the attached patch) but I've no idea if this covers all
necessary platforms (I'd guess Windows doesn't use the Makefile if #22343 fixed
things for it?).
nosy: Dave Jones
title: Missing venv/scripts/common after "make install"
versions: Python 3.6, Python 3.7
Added file: http://bugs.python.org/file46280/missing_venv_common.diff
Python tracker <rep...@bugs.python.org>
Python-bugs-list mailing list