New submission from Ronald Oussoren <[email protected]>:
The attached patch ensures that "python3.3 -mvenv --symlinks myenv" works with
framework builds.
There are two functional changes:
1) don't call 'realpath' in pythonw.c because realpath resolves
symlinks and that breaks the '--symlinks' options because the
python command is a symlink with that option (and resolving that
gives the path to the python executable in the framework)
2) Look for the __PYVENV_LAUNCHER__ environment variable in
Modules/getpath.c and use that in preference on the already
calculated value of argv0_path. That code is only active for
framework builds
I'm not happy with the following line in this patch:
+ wcsncpy(argv0_path, (wchar_t*)pyvenv_launcher, MAXPATHLEN);
That mirrors a similar cast of the result of NSLibraryNameForModule earlier in
Modules/getpath.c, but in both cases the input stream is a narrow character
string ("char", not "wchar_t") and wcsncpy expects a "wchar_t". The the cast
seems to paper over a real problem here.
Shouldn't both lines use "_Py_char2wchar" to convert the char* buffer to a
wchar_t* one?
----------
assignee: ronaldoussoren
components: Library (Lib), Macintosh
files: venv-symlinks.txt
keywords: needs review, patch
messages: 165087
nosy: ronaldoussoren
priority: normal
severity: normal
status: open
title: Patch for --symlink support in pyvenv with framework python
versions: Python 3.3
Added file: http://bugs.python.org/file26332/venv-symlinks.txt
_______________________________________
Python tracker <[email protected]>
<http://bugs.python.org/issue15307>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com