Skip to content

Commit 80a94c2

Browse files
committed
Fix for pip freeze with pip v20.1+
1 parent 5f230a3 commit 80a94c2

File tree

1 file changed

+11
-2
lines changed

1 file changed

+11
-2
lines changed

src/sasctl/utils/misc.py

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,20 @@ def installed_packages():
1818
1919
Notes
2020
-----
21-
Uses pip freeze functionality so pip module must be present.
21+
Uses pip freeze functionality so pip module must be present. For pip
22+
versions >=20.1, this functionality fails to provide versions for some
23+
conda installed, locally installed, and url installed packages. Instead
24+
uses the pkg_resources package which is typically bundled with pip.
2225
2326
"""
27+
from packaging import version
2428
try:
25-
from pip._internal.operations import freeze
29+
import pip
30+
if version.parse(pip.__version__) >= version.parse("20.1"):
31+
import pkg_resources
32+
return [p.project_name + "==" + p.version for p in pkg_resources.working_set]
33+
else:
34+
from pip._internal.operations import freeze
2635
except ImportError:
2736
try:
2837
from pip.operations import freeze

0 commit comments

Comments
 (0)