From 319fa2264f6c3d931e535ca865d5efd52a03c524 Mon Sep 17 00:00:00 2001 From: Angus Gratton Date: Mon, 1 Oct 2018 13:58:51 +1000 Subject: [PATCH 1/2] windows: Update MSYS2 environment, add Python requirements to setup script --- docs/en/get-started/windows-setup.rst | 2 +- docs/zh_CN/get-started/windows-setup.rst | 2 +- tools/windows/windows_install_prerequisites.sh | 12 ++++++------ 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/docs/en/get-started/windows-setup.rst b/docs/en/get-started/windows-setup.rst index 9b143920b..ad7d82101 100644 --- a/docs/en/get-started/windows-setup.rst +++ b/docs/en/get-started/windows-setup.rst @@ -14,7 +14,7 @@ Toolchain Setup The quick setup is to download the Windows all-in-one toolchain & MSYS2 zip file from dl.espressif.com: -https://dl.espressif.com/dl/esp32_win32_msys2_environment_and_toolchain-20180110.zip +https://dl.espressif.com/dl/esp32_win32_msys2_environment_and_toolchain-20181001.zip Unzip the zip file to ``C:\`` (or some other location, but this guide assumes ``C:\``) and it will create an ``msys32`` directory with a pre-prepared environment. diff --git a/docs/zh_CN/get-started/windows-setup.rst b/docs/zh_CN/get-started/windows-setup.rst index 25edb9d15..348f5f6e7 100644 --- a/docs/zh_CN/get-started/windows-setup.rst +++ b/docs/zh_CN/get-started/windows-setup.rst @@ -15,7 +15,7 @@ Windows 没有内置的 "make" 环境,因此如果要安装工具链,你需 快速设置的方法是从 dl.espressif.com 下载集成在一起的工具链和 MSYS2 压缩文件: -https://dl.espressif.com/dl/esp32_win32_msys2_environment_and_toolchain-20180110.zip +https://dl.espressif.com/dl/esp32_win32_msys2_environment_and_toolchain-20181001.zip 将 zip 压缩文件解压到 ``C:\`` (或其它路径,这里假设是 ``C:\``),它会使用预先准备的环境创建一个 ``msys32`` 目录。 diff --git a/tools/windows/windows_install_prerequisites.sh b/tools/windows/windows_install_prerequisites.sh index a08137197..cf1527e1e 100644 --- a/tools/windows/windows_install_prerequisites.sh +++ b/tools/windows/windows_install_prerequisites.sh @@ -33,13 +33,13 @@ set -e pacman --noconfirm -Syu # This step may require the terminal to be closed and restarted -pacman --noconfirm -S --needed gettext-devel gcc git make ncurses-devel flex bison gperf vim mingw-w64-i686-python2-pip unzip winpty +pacman --noconfirm -S --needed gettext-devel gcc git make ncurses-devel flex bison gperf vim \ + mingw-w64-i686-python2-pip mingw-w64-i686-python2-cryptography unzip winpty -# Workaround for errors when running "git submodule" commands -# See https://github.com/Alexpux/MSYS2-packages/issues/735 -rm -f /mingw32/bin/envsubst.exe - -python -m pip install --upgrade pip +# if IDF_PATH is set, install requirements now as well +if [ -n $IDF_PATH ]; then + python -m pip install -r $IDF_PATH/requirements.txt +fi # Automatically download precompiled toolchain, unpack at /opt/xtensa-esp32-elf/ TOOLCHAIN_ZIP=xtensa-esp32-elf-win32-1.22.0-80-g6c4433a-5.2.0.zip From 246a608db0323744e0a97c075041bf17b6f3aa61 Mon Sep 17 00:00:00 2001 From: Angus Gratton Date: Mon, 1 Oct 2018 13:59:14 +1000 Subject: [PATCH 2/2] 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 --- tools/check_python_dependencies.py | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/tools/check_python_dependencies.py b/tools/check_python_dependencies.py index 4f03d0650..37ba34de3 100755 --- a/tools/check_python_dependencies.py +++ b/tools/check_python_dependencies.py @@ -34,6 +34,27 @@ if __name__ == "__main__": default=idf_path + '/requirements.txt') 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 = [] with open(args.requirements) as f: for line in f: