Skip to content
Snippets Groups Projects
  • Samuel John's avatar
    c5248956
    Python 2.x and 3.x support · c5248956
    Samuel John authored
    New `depends_on :python` Dependency.
    New `depends_on :python3` Dependency.
    
    To avoid having multiple formulae with endings -py2 and -py3,
    we will handle support for different pythons (2.x vs. 3.x)
    in the same formula.
    Further brewed vs. external python will be transparently supported.
    
    The formula also gets a new object `python`, which is false if
    no Python is available or the user has disabled it. Otherwise
    it is defined and provides several support methods:
    
    python.site_packages # the site-packages in the formula's Cellar
    python.global_site_packages
    python.binary # the full path to the python binary
    python.prefix
    python.version
    python.version.major
    python.version.minor
    python.xy # => e.g. "python2.7"
    python.incdir # includes of python
    python.libdir # the python dylib library
    python.pkg_config_path # used internally by brew
    python.from_osx?
    python.framework?
    python.universal?
    python.pypy?
    python.standard_caveats # Text to set PYTHONPATH for python.from_osx?
    python.if3then3 # => "" for 2.x and to "3" for 3.x.
    
    Further, to avoid code duplication, `python` takes an optional
    block that is run twice if the formula defines depends_on
    :python AND :python3.
    
    python do
      system python, 'setup.py', "--prefix=#{prefix}"
    end
    
    Read more in the Homebrew wiki.
    c5248956
    History
    Python 2.x and 3.x support
    Samuel John authored
    New `depends_on :python` Dependency.
    New `depends_on :python3` Dependency.
    
    To avoid having multiple formulae with endings -py2 and -py3,
    we will handle support for different pythons (2.x vs. 3.x)
    in the same formula.
    Further brewed vs. external python will be transparently supported.
    
    The formula also gets a new object `python`, which is false if
    no Python is available or the user has disabled it. Otherwise
    it is defined and provides several support methods:
    
    python.site_packages # the site-packages in the formula's Cellar
    python.global_site_packages
    python.binary # the full path to the python binary
    python.prefix
    python.version
    python.version.major
    python.version.minor
    python.xy # => e.g. "python2.7"
    python.incdir # includes of python
    python.libdir # the python dylib library
    python.pkg_config_path # used internally by brew
    python.from_osx?
    python.framework?
    python.universal?
    python.pypy?
    python.standard_caveats # Text to set PYTHONPATH for python.from_osx?
    python.if3then3 # => "" for 2.x and to "3" for 3.x.
    
    Further, to avoid code duplication, `python` takes an optional
    block that is run twice if the formula defines depends_on
    :python AND :python3.
    
    python do
      system python, 'setup.py', "--prefix=#{prefix}"
    end
    
    Read more in the Homebrew wiki.
Code owners
Assign users and groups as approvers for specific file changes. Learn more.