python, port select and group

Lawrence Velázquez larryv at macports.org
Thu Oct 13 16:49:16 CEST 2016


Hello,

> On Oct 13, 2016, at 7:30 AM, Björn Raupach <raupach at me.com> wrote:
> 
> At first I assumed it sets the default symlink for the command in
> /usr/bin

MacPorts almost never touches /usr.

The "port select" command creates symlinks under $prefix, according to
rules specified by the relevant *_select port. For instance,
python_select (used by "port select --set python") creates these files:

https://trac.macports.org/browser/trunk/dports/sysutils/python_select/files/base

> select —summary
> 
> Name     Selected     Options
> ====     ========     =======
> awscli   py34-awscli  py34-awscli none
> maven    maven3       maven3 none
> mysql    mysql56      mysql56 none
> pip      none         none
> python   none         python26-apple python27-apple python34 none
> python3  none         python34 none
> 
> Why is python in more than one group?

The python, python2, and python3 groups are distinct from one another
and install different symlinks. This is an attempt to adhere to PEP 394
as best we can.

https://trac.macports.org/browser/trunk/dports/sysutils/python2_select/files/base
https://trac.macports.org/browser/trunk/dports/sysutils/python3_select/files/base
https://www.python.org/dev/peps/pep-0394

> If I call python from the command line it launches the python3.4 even
> though port select shows that none is selected.
> 
> port select —set python python34 yields an error: Selection ‘python34’ for ‘python’ failed: symlink: /opt/local/etc/select/python/current -> python34: file already exists.

This problem was brought up previously on this list. You may have
uninstalled python34 at some point while it was selected; the "port
select" code doesn't handle this properly and leaves dangling symlinks.
Can you run this and tell us what it returns? (If you see any messages
about permissions, run it again with "sudo".)

	$ find -L /opt/local -type l

vq


More information about the macports-users mailing list