windows: Special check for some MSYS2 Python packages

MSYS2 MINGW requires some particular MSYS2-specific packages.

Closes https://github.com/espressif/esp-idf/issues/2480
Closes https://github.com/espressif/esp-idf/issues/2474
Closes https://github.com/espressif/esp-idf/issues/2486
This commit is contained in:
Angus Gratton 2018-10-01 13:59:14 +10:00 committed by Angus Gratton
parent 319fa2264f
commit 246a608db0

View file

@ -34,6 +34,27 @@ if __name__ == "__main__":
default=idf_path + '/requirements.txt') default=idf_path + '/requirements.txt')
args = parser.parse_args() args = parser.parse_args()
# Special case for MINGW32 Python, needs some packages
# via MSYS2 not via pip or system breaks...
if sys.platform == "win32" and \
os.environ.get("MSYSTEM", None) == "MINGW32" and \
"/mingw32/bin/python" in sys.executable:
failed = False
try:
import cryptography
except ImportError:
print("Please run the following command to install MSYS2's MINGW Python cryptography package:")
print("pacman -S mingw-w64-i686-python%d-cryptography" % (sys.version_info[0],))
failed = True
try:
import setuptools
except ImportError:
print("Please run the following command to install MSYS2's MINGW Python setuptools package:")
print("pacman -S mingw-w64-i686-python%d-setuptools" % (sys.version_info[0],))
failed = True
if failed:
sys.exit(1)
not_satisfied = [] not_satisfied = []
with open(args.requirements) as f: with open(args.requirements) as f:
for line in f: for line in f: