diff options
| author | Tim D. Smith | 2016-07-31 11:59:30 -0700 | 
|---|---|---|
| committer | GitHub | 2016-07-31 11:59:30 -0700 | 
| commit | a5a930c48bec7bb7bdc6bbf7e0fe7fe5f564a7fe (patch) | |
| tree | b07bc8c93d9c8b6f7eaed3246b681593793f6497 /Library/Homebrew/language/python.rb | |
| parent | 7a00f03c92607f65336be0285584e8351ad8a73a (diff) | |
| download | brew-a5a930c48bec7bb7bdc6bbf7e0fe7fe5f564a7fe.tar.bz2 | |
Allow virtualenvs to find Python bindings provided by deps (#608)
Allow virtualenvs to find Python bindings provided by deps
Closes #603.
Diffstat (limited to 'Library/Homebrew/language/python.rb')
| -rw-r--r-- | Library/Homebrew/language/python.rb | 18 | 
1 files changed, 16 insertions, 2 deletions
| diff --git a/Library/Homebrew/language/python.rb b/Library/Homebrew/language/python.rb index 53aae2eb4..4249a911c 100644 --- a/Library/Homebrew/language/python.rb +++ b/Library/Homebrew/language/python.rb @@ -122,6 +122,20 @@ module Language          ENV.refurbish_args          venv = Virtualenv.new formula, venv_root, python          venv.create + +        # Find any Python bindings provided by recursive dependencies +        formula_deps = formula.recursive_dependencies +        xy = Language::Python.major_minor_version python +        pth_contents = formula_deps.map do |d| +          next if d.build? +          dep_site_packages = Formula[d.name].opt_lib/"python#{xy}/site-packages" +          next unless dep_site_packages.exist? +          "import site; site.addsitedir('#{dep_site_packages}')\n" +        end +        if pth_contents.any? +          (venv_root/"lib/python#{xy}/site-packages/homebrew_deps.pth").write pth_contents.join +        end +          venv        end @@ -223,8 +237,8 @@ module Language          def do_install(targets)            targets = [targets] unless targets.is_a? Array            @formula.system @venv_root/"bin/pip", "install", -                 "-v", "--no-deps", "--no-binary", ":all:", -                 *targets +                          "-v", "--no-deps", "--no-binary", ":all:", +                          "--ignore-installed", *targets          end        end # class Virtualenv      end # module Virtualenv | 
