Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why aren't the Python 2.7 command-line tools located in `/usr/local/bin` on Mac OS X?

The Python 2.7 installer disk image for Mac OS X (python-2.7-macosx10.5.dmg) states:

The installer puts the applications in "Python 2.7" in your Applications folder, command-line tools in /usr/local/bin and the underlying machinery in /Library/Frameworks/Python.framework.

However, after installation there are no Python 2.7 files in /usr/local/bin/.

  • Are others seeing the same behavior?
  • I assume the solution is simply to create the equivalent symbolic links to /usr/local/bin as Python 2.6, or am I overlooking something?
like image 486
Matthew Rankin Avatar asked Jul 16 '10 14:07

Matthew Rankin


1 Answers

The python.org Python installer for OS X is a meta package with a set of several packages. You can see the packages by clicking on the Customize button during the installation process. The symlinks in /usr/local/bin are installed by the UNIX command-line tools package. For the 2.7 release, that package is no longer selected by default. You can install it and the symlinks by doing a custom install and selecting that package; if you've already installed 2.7, select just that package.

EDIT: That said, it is important to recognize that, with OS X Python framework builds, just having /usr/local/bin in your search path is generally not sufficient. The reason for that is that python scripts included in packages are, by default, installed into the bin directory of the Python directory, e.g. /Library/Frameworks/Python.framework/Versions/2.7/bin. This is true of just about anything that uses Distutils defaults or installation tools that wrap Distutils, like easy_install (Distribute or setuptools) or pip. This is why there is another installer package, Shell profile updater, that is enabled by default and attempts to modify your login profile to put the framework bin directory at the front of your shell search path, PATH. If that is done, the symlinks in /usr/local/bin are not required for python2.7 to be invoked.

like image 192
Ned Deily Avatar answered Sep 23 '22 16:09

Ned Deily