homepage

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.

classification
Title: Implement PEP 394: The "python" Command on Unix-Like Systems
Type: enhancement Stage: resolved
Components: Installation Versions: Python 3.3, Python 2.7
process
Status: closed Resolution: fixed
Dependencies: Superseder:
Assigned To: ned.deily Nosy List: Kerrick.Staley, benjamin.peterson, eric.araujo, jbicha, loewis, meador.inge, ncoghlan, ned.deily, petri.lehtinen, python-dev
Priority: normal Keywords: patch

Created on 2011年07月24日 02:31 by Kerrick.Staley, last changed 2022年04月11日 14:57 by admin. This issue is now closed.

Files
File name Uploaded Description Edit
pep394_python27_symlinks.diff ncoghlan, 2012年02月16日 12:29 Patch adding python2 as a symlink review
Messages (11)
msg141034 - (view) Author: Kerrick Staley (Kerrick.Staley) Date: 2011年07月24日 02:31
This issue was opened to track the implementation of PEP 394, which governs the way the python command and commands like python2 and python3 work on Unix-like systems.
msg141035 - (view) Author: Kerrick Staley (Kerrick.Staley) Date: 2011年07月24日 02:39
Here is a patch that will update the Makefile.pre.in file for 2.7, causing it to install python2 and python2-config when run with "make install" (or just "make bininstall"). This does not update any documentation. Also, it appears that Idle and PyDoc are not installed by the 2.7 Makefile, so I didn't do anything about those, even though the PEP mentions them.
msg141036 - (view) Author: Kerrick Staley (Kerrick.Staley) Date: 2011年07月24日 02:42
This updates the links created by "make install" or "make bininstall" in Python 3 so that they're in agreement with the recommendations of PEP 394; it's the equivalent of version27_links.patch but is for Python 3.
msg141046 - (view) Author: Éric Araujo (eric.araujo) * (Python committer) Date: 2011年07月24日 15:09
Some scripts are installed by setup.py
I’ll find time to read the latest version of the PEP in the coming days.
msg153303 - (view) Author: Martin v. Löwis (loewis) * (Python committer) Date: 2012年02月13日 21:06
The 2.7 patch needs to remove an existing python2 link before creating it.
msg153477 - (view) Author: Alyssa Coghlan (ncoghlan) * (Python committer) Date: 2012年02月16日 12:10
I removed the 3.3 patch, since all the previous version did was change symbolic links to hard links, and the latest round of discussions favoured retaining the symlinks since they're much easier to introspect.
However, it turns out there is still one change needed for 3.3 - updating the current python3 hardlink to make it a symlink instead.
msg153478 - (view) Author: Alyssa Coghlan (ncoghlan) * (Python committer) Date: 2012年02月16日 12:17
Actually, the Python 3 Makefile.pre.in is currently broken if $(EXE) is ever non-empty - in a few places it uses "$(PYTHON)$(VERSION)$(EXE)" and "$(PYTHON)3$(EXE)".
Those are wrong, because the definition of $(PYTHON) at the top of the file is "python$(EXE)"
Instead, they need to be written as "python$(VERSION)$(EXE)" and "python3$(EXE)"
msg153479 - (view) Author: Alyssa Coghlan (ncoghlan) * (Python committer) Date: 2012年02月16日 12:29
New patch that aims to create the appropriate symlinks in "make bininstall". I don't currently have a sacrificial VM set up to test it in though.
msg153543 - (view) Author: Alyssa Coghlan (ncoghlan) * (Python committer) Date: 2012年02月17日 13:20
No automatic link, since I neglected to mention the issue number in the checkin messages:
2.7: http://hg.python.org/cpython/rev/a65a71aa9436
3.3: http://hg.python.org/cpython/rev/dc721f28f168
I deliberately *didn't* make the change in 3.2. As the choice of symlink vs hardlink is really more cosmetic than consequential, it didn't feel like an appropriate change to make in a maintenance release without a compelling reason (introducing a *new* link meant we had such a reason for 2.7, but that's not applicable to 3.2).
Handing the issue over to Ned to confirm the OS X framework builds align with the PEP.
msg153664 - (view) Author: Roundup Robot (python-dev) (Python triager) Date: 2012年02月19日 01:21
New changeset 499796937b7a by Ned Deily in branch '2.7':
Issue #12627: Implement PEP 394 for OS X framework builds.
http://hg.python.org/cpython/rev/499796937b7a 
msg153665 - (view) Author: Ned Deily (ned.deily) * (Python committer) Date: 2012年02月19日 02:03
Changeset 499796937b7a implements PEP 394 for OS X framework builds on Python 2.7. OS X framework builds already created versioned symlinks for all executables and scripts installed in the framework bin directory, of the general form ${cmd} - ${cmd}2.7. This is all accomplished in some additional targets in Mac/Makefile which are automatically added by configure for framework builds and supersede the standard processing in the main Makefile bininstall and altbininstall targets. The changes here add the additional hierarchy of ${cmd} -> ${cmd}2 -> ${cmd}2.7. Per previous practice, all of the links are created in the framework bin directory for both the install and altinstall targets. This is consistent with the long-standing recommendation to manage multiple framework versions by adding and ordering framework bin directories on $PATH. Also, per past practice, symlinks to all framework bin entries are created in $prefix/bin (by default, /usr/local/bin) for the install target and only versioned links are created for altinstall, although the use of these links is not recommended for framework builds and their installation is optional with the standard OS X installers.
No changes are needed for 3.2 or 3.3 at this time. Although the Mac/Makefile targets don't quite create all of the versioned links in $prefix/bin, the installer build script does the right thing by creating symlinks to everything in the fw bin directory.
In many respects, the current situation for framework builds is less than ideal, with duplicated code, vestigial links, and, more importantly, a clumsy and non-transparent method for managing multiple versions. I intend to revisit this area prior to Python 3.3 feature code cutoff as a separate issue.
History
Date User Action Args
2022年04月11日 14:57:20adminsetgithub: 56836
2012年02月19日 02:03:17ned.deilysetstatus: open -> closed
resolution: fixed
messages: + msg153665

stage: needs patch -> resolved
2012年02月19日 01:21:00python-devsetnosy: + python-dev
messages: + msg153664
2012年02月17日 13:20:26ncoghlansetassignee: ned.deily
messages: + msg153543
stage: patch review -> needs patch
2012年02月16日 12:29:45ncoghlansetfiles: - version27_links.patch
2012年02月16日 12:29:13ncoghlansetfiles: + pep394_python27_symlinks.diff

messages: + msg153479
2012年02月16日 12:17:37ncoghlansetmessages: + msg153478
2012年02月16日 12:10:31ncoghlansetmessages: + msg153477
2012年02月16日 11:54:50ncoghlansetfiles: - version33_links.patch
2012年02月13日 21:06:36loewissetnosy: + loewis
messages: + msg153303
2012年02月12日 08:51:47ncoghlansetnosy: + benjamin.peterson
2011年11月28日 01:38:15meador.ingesetnosy: + meador.inge
2011年11月17日 01:42:00ncoghlansetnosy: + ncoghlan
2011年08月03日 11:06:33jbichasetnosy: + jbicha
2011年07月24日 17:43:34petri.lehtinensetnosy: + petri.lehtinen
2011年07月24日 15:09:19eric.araujosetnosy: + eric.araujo
messages: + msg141046
2011年07月24日 02:43:18ned.deilysetnosy: + ned.deily

stage: patch review
2011年07月24日 02:42:02Kerrick.Staleysetfiles: + version33_links.patch

messages: + msg141036
2011年07月24日 02:39:47Kerrick.Staleysetfiles: + version27_links.patch
keywords: + patch
messages: + msg141035
2011年07月24日 02:31:35Kerrick.Staleycreate

AltStyle によって変換されたページ (->オリジナル) /