Files
brew/Library/Homebrew/requirements/python_requirement.rb
T
Vlad ShablinskyandXu Cheng 3fb5d70a72 Unify Version.create usage
Substitue each Version.new and HeadVersion.new with Version.create
to unify Version and HeadVersion instantiation among core code.

Note that this does not relate to Mac::OS::Version class.
2016-07-16 20:39:13 +08:00

67 lines
1.5 KiB
Ruby

require "language/python"
class PythonRequirement < Requirement
fatal true
default_formula "python"
cask "python"
satisfy :build_env => false do
python = which_python
next unless python
version = python_short_version
next unless version
# Always use Python 2.7 for consistency on older versions of OSX.
version == Version.create("2.7")
end
env do
short_version = python_short_version
if !system_python? && short_version == Version.create("2.7")
ENV.prepend_path "PATH", which_python.dirname
# Homebrew Python should take precedence over older Pythons in the PATH
elsif short_version != Version.create("2.7")
ENV.prepend_path "PATH", Formula["python"].opt_bin
end
ENV["PYTHONPATH"] = "#{HOMEBREW_PREFIX}/lib/python#{short_version}/site-packages"
end
def python_short_version
@short_version ||= Language::Python.major_minor_version which_python
end
def which_python
python = which python_binary
return unless python
Pathname.new Utils.popen_read(python, "-c", "import sys; print(sys.executable)").strip
end
def system_python
"/usr/bin/#{python_binary}"
end
def system_python?
system_python == which_python.to_s
end
def python_binary
"python"
end
# Deprecated
alias_method :to_s, :python_binary
end
class Python3Requirement < PythonRequirement
fatal true
default_formula "python3"
cask "python3"
satisfy(:build_env => false) { which_python }
def python_binary
"python3"
end
end