summaryrefslogtreecommitdiffstats
path: root/Mac
diff options
context:
space:
mode:
authorVinay Sajip <vinay_sajip@yahoo.co.uk>2012-05-26 02:45:29 (GMT)
committerVinay Sajip <vinay_sajip@yahoo.co.uk>2012-05-26 02:45:29 (GMT)
commit7ded1f0f694f0f99252ea19eca18b74ea5e36cb0 (patch)
tree1f07c57fddc9627f3d506b7a8d25ded561f5a2e0 /Mac
parentf2bdc3690a59ca2af3f2fa82f506350874ff1467 (diff)
downloadcpython-7ded1f0f694f0f99252ea19eca18b74ea5e36cb0.zip
cpython-7ded1f0f694f0f99252ea19eca18b74ea5e36cb0.tar.gz
cpython-7ded1f0f694f0f99252ea19eca18b74ea5e36cb0.tar.bz2
Implemented PEP 405 (Python virtual environments).
Diffstat (limited to 'Mac')
-rw-r--r--Mac/Makefile.in4
-rw-r--r--Mac/Tools/pythonw.c12
2 files changed, 14 insertions, 2 deletions
diff --git a/Mac/Makefile.in b/Mac/Makefile.in
index 8a62a90..6d2ad16 100644
--- a/Mac/Makefile.in
+++ b/Mac/Makefile.in
@@ -72,7 +72,7 @@ installunixtools:
for fn in python3 pythonw3 idle3 pydoc3 python3-config \
python$(VERSION) pythonw$(VERSION) idle$(VERSION) \
pydoc$(VERSION) python$(VERSION)-config 2to3 \
- 2to3-$(VERSION) ;\
+ 2to3-$(VERSION) pyvenv pyvenv-$(VERSION) ;\
do \
ln -fs "$(prefix)/bin/$${fn}" "$(DESTDIR)$(FRAMEWORKUNIXTOOLSPREFIX)/bin/$${fn}" ;\
done
@@ -93,7 +93,7 @@ altinstallunixtools:
$(INSTALL) -d -m $(DIRMODE) "$(DESTDIR)$(FRAMEWORKUNIXTOOLSPREFIX)/bin" ;\
fi
for fn in python$(VERSION) pythonw$(VERSION) idle$(VERSION) \
- pydoc$(VERSION) python$(VERSION)-config 2to3-$(VERSION);\
+ pydoc$(VERSION) python$(VERSION)-config 2to3-$(VERSION) pyvenv-$(VERSION) ;\
do \
ln -fs "$(prefix)/bin/$${fn}" "$(DESTDIR)$(FRAMEWORKUNIXTOOLSPREFIX)/bin/$${fn}" ;\
done
diff --git a/Mac/Tools/pythonw.c b/Mac/Tools/pythonw.c
index 30c82ac..ebee531 100644
--- a/Mac/Tools/pythonw.c
+++ b/Mac/Tools/pythonw.c
@@ -150,6 +150,18 @@ setup_spawnattr(posix_spawnattr_t* spawnattr)
int
main(int argc, char **argv) {
char* exec_path = get_python_path();
+ static char path[PATH_MAX * 2];
+ static char real_path[PATH_MAX * 2];
+ int status;
+ uint32_t size = PATH_MAX * 2;
+
+ /* Set the original executable path in the environment. */
+ status = _NSGetExecutablePath(path, &size);
+ if (status == 0) {
+ if (realpath(path, real_path) != NULL) {
+ setenv("__PYTHONV_LAUNCHER__", real_path, 1);
+ }
+ }
/*
* Let argv[0] refer to the new interpreter. This is needed to