Easy Install Python Module on OS X

Easy Install is a Python module (easy_install) bundled with setuptools that allows you to automatically download, build, and install Python packages/modules. When you use it, it is normally downloading files from the Internet for installation. On an OS X system, it is found in /usr/bin. The file there is a Python script easy_install. You can obtain information on its usage by typing easy_install --help in a Terminal window. You can obtain version information using the command easy_install --version.

Udemy Generic Category (English)120x600
$ which easy_install
/usr/bin/easy_install
$ easy_install --help

Global options:
  --verbose (-v)  run verbosely (default)
  --quiet (-q)    run quietly (turns verbosity off)
  --dry-run (-n)  don't actually do anything
  --help (-h)     show detailed help message
  --no-user-cfg   ignore pydistutils.cfg in your home directory

Options for 'easy_install' command:
  --prefix                   installation prefix
  --zip-ok (-z)              install package as a zipfile
  --multi-version (-m)       make apps have to require() a version
  --upgrade (-U)             force upgrade (searches PyPI for latest versions)
  --install-dir (-d)         install package to DIR
  --script-dir (-s)          install scripts to DIR
  --exclude-scripts (-x)     Don't install scripts
  --always-copy (-a)         Copy all needed packages to install dir
  --index-url (-i)           base URL of Python Package Index
  --find-links (-f)          additional URL(s) to search for packages
  --build-directory (-b)     download/extract/build in DIR; keep the results
  --optimize (-O)            also compile with optimization: -O1 for "python -
                             O", -O2 for "python -OO", and -O0 to disable
                             [default: -O0]
  --record                   filename in which to record list of installed
                             files
  --always-unzip (-Z)        don't install as a zipfile, no matter what
  --site-dirs (-S)           list of directories where .pth files work
  --editable (-e)            Install specified packages in editable form
  --no-deps (-N)             don't install dependencies
  --allow-hosts (-H)         pattern(s) that hostnames must match
  --local-snapshots-ok (-l)  allow building eggs from local checkouts
  --version                  print version information and exit
  --no-find-links            Don't load find-links defined in packages being
                             installed
  --user                     install in user site-package
                             '/Users/jmcamer1/Library/Python/2.7/lib/python/si
                             te-packages'

usage: easy_install [options] requirement_or_url ...
   or: easy_install --help

$ easy_install --version
setuptools 1.1.6
$

If you installed LibreOffice on the system, you will likely have other copies of the script on the system.

$ find / -name easy_install.py 2>/dev/null
/Applications/LibreOffice.app/Contents/Frameworks/LibreOfficePython.framework/Ve
rsions/3.5/lib/python3.5/site-packages/easy_install.py
/Applications/LibreOffice.app/Contents/Frameworks/LibreOfficePython.framework/Ve
rsions/3.5/lib/python3.5/site-packages/setuptools/command/easy_install.py
$

To install Python packages on an OS X system using easy_install you can issue the command sudo easy_install olefile in a Terminal window

$ sudo easy_install olefile
Enter PIN for 'JOHN DOE': 
Searching for olefile
Reading https://pypi.python.org/simple/olefile/
Best match: olefile 0.45.1
Downloading https://pypi.python.org/packages/d3/8a/e0f0e56d6a542dd987f9290ef7b5164636ee597ce8c2932c19c78292d5ec/olefile-0.45.1.zip#md5=f70c0688320548ae0f1b4785e7aefcb9
Processing olefile-0.45.1.zip
Writing /tmp/easy_install-Ahie_l/olefile-0.45.1/setup.cfg
Running olefile-0.45.1/setup.py -q bdist_egg --dist-dir /tmp/easy_install-Ahie_l/olefile-0.45.1/egg-dist-tmp-ttoP2p
/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/dist.py:267: UserWarning: Unknown distribution option: 'python_requires'
  warnings.warn(msg)
no previously-included directories found matching 'doc/_build'
zip_safe flag not set; analyzing archive contents...
Adding olefile 0.45.1 to easy-install.pth file

Installed /Library/Python/2.7/site-packages/olefile-0.45.1-py2.7.egg
Processing dependencies for olefile
Finished processing dependencies for olefile
$

If you try to install the olefile without root privileges, you will see the following output:

$ easy_install olefile
error: can't create or remove files in install directory

The following error occurred while trying to add or remove files in the
installation directory:

    [Errno 13] Permission denied: '/Library/Python/2.7/site-packages/test-easy-install-18295.pth'

The installation directory you specified (via --install-dir, --prefix, or
the distutils default setting) was:

    /Library/Python/2.7/site-packages/

Perhaps your account does not have write access to this directory?  If the
installation directory is a system-owned directory, you may need to sign in
as the administrator or "root" account.  If you do not have administrative
access to this machine, you may wish to choose a different installation
directory, preferably one that is listed in your PYTHONPATH environment
variable.

For information on other options, you may wish to consult the
documentation at:

  https://pythonhosted.org/setuptools/easy_install.html

Please make the appropriate changes for your system and try again.

$

Python code can be packaged in EGG files with a filename extension of .egg. The .egg files can contain code, resources, and metadata - see Internal Structure of Python Eggs.

The .egg format is well-suited to distribution and the easy uninstallation or upgrades of code, since the project is essentially self-contained within a single directory or file, unmingled with any other projects' code or resources. It also makes it possible to have multiple versions of a project simultaneously installed, such that individual programs can select the versions they wish to use.

If you have a .egg file, you can install it as a package with the easy_install script. If you are using a Python 2.x version, you can find the .egg files for packages installed with easy_install in the /Library/Python/2.x/site-packages/ where the "x" in "2.x" is the version of Python in use on the system. You can determine the version of Python on the system with python --version. E.g.:

$ python --version
Python 2.7.10
$ ls /Library/Python/2.7/site-packages/
PyPDF2-1.26.0-py2.7.egg		easy-install.pth
README				olefile-0.45.1-py2.7.egg
$

Related articles:

  1. Using olefile to obtain metadata from an OLE CDF V2 file
  2. Using xlrd to extract a column from an Excel spredsheet

References:

  1. What is a Python egg?