From f3ec4d5d2a1a12e417c79a25c5ee7212f2fcce9a Mon Sep 17 00:00:00 2001 From: Vadim Kravcenko Date: Mon, 11 May 2015 23:05:47 +0200 Subject: [PATCH] fix(pipreqs): Walk through all sys.path instead of only get_python_lib() --- pipreqs/pipreqs.py | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/pipreqs/pipreqs.py b/pipreqs/pipreqs.py index 9c1c2e0..9ffdd45 100755 --- a/pipreqs/pipreqs.py +++ b/pipreqs/pipreqs.py @@ -88,18 +88,20 @@ def get_imports_info(imports): def get_locally_installed_packages(): packages = {} - for root, dirs, files in os.walk(get_python_lib()): - for item in files: - if "top_level" in item: - with open(os.path.join(root, item), "r") as f: - package = root.split("/")[-1].split("-") - package_import = f.read().strip().split("\n") - for item in package_import: - if item not in ["tests", "_tests"]: - packages[item] = { - 'version': package[1].replace(".dist", ""), - 'name': package[0] - } + ignore = ["tests", "_tests", "egg", "EGG", "info"] + for path in sys.path: + for root, dirs, files in os.walk(path): + for item in files: + if "top_level" in item: + with open(os.path.join(root, item), "r") as f: + package = root.split("/")[-1].split("-") + package_import = f.read().strip().split("\n") + for item in package_import: + if item not in ignore and package[0] not in ignore: + packages[item] = { + 'version': package[1].replace(".dist", ""), + 'name': package[0] + } return packages