diff options
Diffstat (limited to 'Library/Homebrew/compat/requirements/python_requirement.rb')
| -rw-r--r-- | Library/Homebrew/compat/requirements/python_requirement.rb | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/Library/Homebrew/compat/requirements/python_requirement.rb b/Library/Homebrew/compat/requirements/python_requirement.rb new file mode 100644 index 000000000..3215d0a6c --- /dev/null +++ b/Library/Homebrew/compat/requirements/python_requirement.rb @@ -0,0 +1,68 @@ +require "language/python" + +class PythonRequirement < Requirement + fatal true + default_formula "python" + + satisfy build_env: false do + python = which_python + next unless python + next unless short_version + # Always use Python 2.7 for consistency on older versions of Mac OS X. + short_version == Version.create("2.7") + end + + env do + if !system_python? && short_version == Version.create("2.7") + ENV.prepend_path "PATH", which_python.dirname + end + + # Homebrew Python should take precedence over other Pythons in the PATH + ENV.prepend_path "PATH", Formula["python"].opt_bin + ENV.prepend_path "PATH", Formula["python"].opt_libexec/"bin" + + if system_python? + ENV["PYTHONPATH"] = "#{HOMEBREW_PREFIX}/lib/python#{short_version}/site-packages" + end + end + + private + + def 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 + "python2.7" + end + + # Deprecated + alias to_s python_binary +end + +class Python3Requirement < PythonRequirement + fatal true + default_formula "python3" + + satisfy(build_env: false) { which_python } + + private + + def python_binary + "python3" + end +end |
