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 | |
| 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')
| -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 |
