Thus I expected naively that pip install . and python setup.py install should have the same results.
they process install_requires with different code, so things could turn out differently.
I have a reproducible case when the dependency handling differs if you use pip install -r requirements.txt or when you use python setup.py install https://github.com/zeromq/pyzmq/issues/414#issuecomment-24679800
I looked at this case, but atleast for me, the results were the same in all 3 cases (note that this project splits requirements.txt to generate 'install_requires') 1) python setup.py install 2) pip install . 3) pip install -r requirements.txt from "pip list" after the installs: anyjson (0.3.3) configparser (3.3.0r2) coverage (3.6) docutils (0.11) Jinja2 (2.7.1) MarkupSafe (0.18) picomongo (0.6) Pygments (1.6) pymongo (2.6.2) pyzmq (13.1.0) satlive (0.8.0) Sphinx (1.2b2) btw, pip<1.4 has a bug where a stale build directory can lead to unexpected results. check for the offending project in <venv>/build (if using a virtualenv), or if using a global python /tmp/pip-build-<username>