Fix python configuration processing.

Previously buck would try to use any executable file or
directory in its working directory as a python interpreter. It would
also silently fall back to finding a python on the PATH if a python
path was specified in the config, but invalid. This change fixes both
of those problems and adds tests.

Test Plan:
0) buck test --all
1) mkdir python
2) touch BUCK
3) check that "buck build :lolwut" returns the error "BUILD FAILED: No rule
found when resolving target //:lolwut in build file //BUCK"
4 files changed
tree: a621340e836506e656acfa77c982c8e6d823bcd6
  1. .buckconfig
  2. .classpath
  3. .gitignore
  4. .idea/
  5. .project
  6. .travis.yml
  7. DEFS
  10. bin/
  11. buck.iml
  12. build.xml
  13. config/
  14. docs/
  15. lib/
  16. plugin/
  17. pmd/
  18. scripts/
  19. src/
  20. test/
  21. testdata/
  22. third-party/


Buck is an Android build tool. To see what Buck can do for you, check out the documentation at

Build Status


To build Buck, run the following:

git clone
cd buck
./bin/buck --help


Apache License 2.0