ARMmbed / mbed-os

Arm Mbed OS is a platform operating system designed for the internet of things
https://mbed.com
Other
4.67k stars 2.98k forks source link

error: Microsoft Visual C++ 14.0 is required #8113

Closed MarceloSalazar closed 6 years ago

MarceloSalazar commented 6 years ago

Description

Evaluating 5.10 during OOB round 2. Found error "Microsoft Visual C++ 14.0 is required" while trying to get started with Mbed OS.

Environment:

Installing Mbed OS in new PC and hitting errors:

mbed new test
cd test\mbed-os
mbed update mbed-os-5.10.0-rc2

[mbed] WARNING: If you're using Python 3 with Mbed OS 5.8 and earlier versions, Python errors will occur when compiling, testing and exporting
---
[mbed] Updating library "mbed-os" to branch/tag "mbed-os-5.10.0-rc2"
[mbed] Updating reference "mbed-os" -> "https://github.com/ARMmbed/mbed-os/#dd2d15979665a3d70b18cf722ca91caf4e4ee523"
[mbed] Auto-installing missing Python modules...
[mbed] WARNING: Unable to auto-install required Python modules.
       The mbed OS tools in this program require the following Python modules: git, mbed_cloud_sdk, icetea
       You can install all missing modules by running "pip install -r requirements.txt" in "C:\mbed\OOB2\test2\mbed-os"
---

C:\mbed\OOB2\test2\mbed-os>pip install -r requirements.txt
Collecting git+https://github.com/armmbed/manifest-tool.git@v1.4.5 (from -r requirements.txt (line 18))
  Cloning https://github.com/armmbed/manifest-tool.git (to revision v1.4.5) to c:\users\marsal01\appdata\local\temp\pip-req-build-rx5x5sau
Requirement already satisfied: colorama>=0.3.3 in c:\users\marsal01\appdata\local\programs\python\python37-32\lib\site-packages (from -r requirements.txt (line 1)) (0.3.9)
Requirement already satisfied: PySerial>=2.7 in c:\users\marsal01\appdata\local\programs\python\python37-32\lib\site-packages (from -r requirements.txt (line 2)) (3.4)
Requirement already satisfied: PrettyTable>=0.7.2 in c:\users\marsal01\appdata\local\programs\python\python37-32\lib\site-packages (from -r requirements.txt (line 3)) (0.7.2)
Requirement already satisfied: Jinja2>=2.7.3 in c:\users\marsal01\appdata\local\programs\python\python37-32\lib\site-packages (from -r requirements.txt (line 4)) (2.10)
Requirement already satisfied: IntelHex>=1.3 in c:\users\marsal01\appdata\local\programs\python\python37-32\lib\site-packages (from -r requirements.txt (line 5)) (2.2.1)
Requirement already satisfied: junit-xml in c:\users\marsal01\appdata\local\programs\python\python37-32\lib\site-packages (from -r requirements.txt (line 6)) (1.8)
Requirement already satisfied: pyYAML in c:\users\marsal01\appdata\local\programs\python\python37-32\lib\site-packages (from -r requirements.txt (line 7)) (3.13)
Requirement already satisfied: requests in c:\users\marsal01\appdata\local\programs\python\python37-32\lib\site-packages (from -r requirements.txt (line 8)) (2.19.1)
Requirement already satisfied: mbed-ls==1.*,>=1.4.2 in c:\users\marsal01\appdata\local\programs\python\python37-32\lib\site-packages (from -r requirements.txt (line 9)) (1.6.0)
Requirement already satisfied: mbed-host-tests>=1.1.2 in c:\users\marsal01\appdata\local\programs\python\python37-32\lib\site-packages (from -r requirements.txt (line 10)) (1.4.1)
Requirement already satisfied: mbed-greentea>=0.2.24 in c:\users\marsal01\appdata\local\programs\python\python37-32\lib\site-packages (from -r requirements.txt (line 11)) (1.4.0)
Requirement already satisfied: beautifulsoup4>=4 in c:\users\marsal01\appdata\local\programs\python\python37-32\lib\site-packages (from -r requirements.txt (line 12)) (4.6.3)
Requirement already satisfied: fuzzywuzzy>=0.11 in c:\users\marsal01\appdata\local\programs\python\python37-32\lib\site-packages (from -r requirements.txt (line 13)) (0.17.0)
Requirement already satisfied: pyelftools>=0.24 in c:\users\marsal01\appdata\local\programs\python\python37-32\lib\site-packages (from -r requirements.txt (line 14)) (0.25)
Requirement already satisfied: jsonschema>=2.6 in c:\users\marsal01\appdata\local\programs\python\python37-32\lib\site-packages (from -r requirements.txt (line 15)) (2.6.0)
Requirement already satisfied: future>=0.16.0 in c:\users\marsal01\appdata\local\programs\python\python37-32\lib\site-packages (from -r requirements.txt (line 16)) (0.16.0)
Requirement already satisfied: six>=1.11.0 in c:\users\marsal01\appdata\local\programs\python\python37-32\lib\site-packages (from -r requirements.txt (line 17)) (1.11.0)
Requirement already satisfied: mbed-cloud-sdk==2.0.0 in c:\users\marsal01\appdata\local\programs\python\python37-32\lib\site-packages (from -r requirements.txt (line 19)) (2.0.0)
Collecting icetea<2,>=1.0.1 (from -r requirements.txt (line 20))
  Using cached https://files.pythonhosted.org/packages/66/b9/74d07788ebb2c1a0988479cdb5615ae6d122899121c0d54f210a360992f1/icetea-1.0.1.tar.gz
Collecting ecdsa>=0.13 (from manifest-tool==1.4.5->-r requirements.txt (line 18))
  Using cached https://files.pythonhosted.org/packages/63/f4/73669d51825516ce8c43b816c0a6b64cd6eb71d08b99820c00792cb42222/ecdsa-0.13-py2.py3-none-any.whl
Collecting cryptography>=2.0.0 (from manifest-tool==1.4.5->-r requirements.txt (line 18))
  Using cached https://files.pythonhosted.org/packages/da/f6/6b9f031611697cb61d25c884237a8762725df7373a0accd49b39fbbb23cd/cryptography-2.3.1-cp37-cp37m-win32.whl
Collecting pyasn1<0.3.0,>=0.2.1 (from manifest-tool==1.4.5->-r requirements.txt (line 18))
  Using cached https://files.pythonhosted.org/packages/a5/ae/6b4c4cb9420edddd7401782f55504130d1269f2e5ae3ba3c986da167dd6c/pyasn1-0.2.3-py2.py3-none-any.whl
Collecting asn1ate>=0.5 (from manifest-tool==1.4.5->-r requirements.txt (line 18))
  Using cached https://files.pythonhosted.org/packages/ec/20/7310475955a893ddd0beb7c8a9b1f940390d67bc46cae9d60c7bc7566d5c/asn1ate-0.6.0.tar.gz
Collecting pyparsing>=2.1.0 (from manifest-tool==1.4.5->-r requirements.txt (line 18))
  Using cached https://files.pythonhosted.org/packages/6a/8a/718fd7d3458f9fab8e67186b00abdd345b639976bc7fb3ae722e1b026a50/pyparsing-2.2.0-py2.py3-none-any.whl
Requirement already satisfied: urllib3>=1.20 in c:\users\marsal01\appdata\local\programs\python\python37-32\lib\site-packages (from manifest-tool==1.4.5->-r requirements.txt (line 18)) (1.23)
Collecting protobuf<3.6.0,>=3.5.0 (from manifest-tool==1.4.5->-r requirements.txt (line 18))
  Using cached https://files.pythonhosted.org/packages/bf/dc/42d35afffe88ce301c90457eb60d145dd64144f283ef4bf927c1187ef114/protobuf-3.5.2.post1-py2.py3-none-any.whl
Requirement already satisfied: MarkupSafe>=0.23 in c:\users\marsal01\appdata\local\programs\python\python37-32\lib\site-packages (from Jinja2>=2.7.3->-r requirements.txt (line 4)) (1.0)
Requirement already satisfied: idna<2.8,>=2.5 in c:\users\marsal01\appdata\local\programs\python\python37-32\lib\site-packages (from requests->-r requirements.txt (line 8)) (2.7)
Requirement already satisfied: chardet<3.1.0,>=3.0.2 in c:\users\marsal01\appdata\local\programs\python\python37-32\lib\site-packages (from requests->-r requirements.txt (line 8)) (3.0.4)
Requirement already satisfied: certifi>=2017.4.17 in c:\users\marsal01\appdata\local\programs\python\python37-32\lib\site-packages (from requests->-r requirements.txt (line 8)) (2018.8.24)
Requirement already satisfied: fasteners in c:\users\marsal01\appdata\local\programs\python\python37-32\lib\site-packages (from mbed-ls==1.*,>=1.4.2->-r requirements.txt (line 9)) (0.14.1)
Requirement already satisfied: appdirs>=1.4 in c:\users\marsal01\appdata\local\programs\python\python37-32\lib\site-packages (from mbed-ls==1.*,>=1.4.2->-r requirements.txt (line 9)) (1.4.3)
Requirement already satisfied: pyOCD>=0.8.1a1 in c:\users\marsal01\appdata\local\programs\python\python37-32\lib\site-packages (from mbed-host-tests>=1.1.2->-r requirements.txt (line 10)) (0.12.0)
Requirement already satisfied: lockfile in c:\users\marsal01\appdata\local\programs\python\python37-32\lib\site-packages (from mbed-greentea>=0.2.24->-r requirements.txt (line 11)) (0.12.2)
Requirement already satisfied: mock in c:\users\marsal01\appdata\local\programs\python\python37-32\lib\site-packages (from mbed-greentea>=0.2.24->-r requirements.txt (line 11)) (2.0.0)
Requirement already satisfied: python-dotenv>=0.8.2 in c:\users\marsal01\appdata\local\programs\python\python37-32\lib\site-packages (from mbed-cloud-sdk==2.0.0->-r requirements.txt (line 19)) (0.9.1)
Requirement already satisfied: python-dateutil>=2 in c:\users\marsal01\appdata\local\programs\python\python37-32\lib\site-packages (from mbed-cloud-sdk==2.0.0->-r requirements.txt (line 19)) (2.7.3)
Requirement already satisfied: yattag in c:\users\marsal01\appdata\local\programs\python\python37-32\lib\site-packages (from icetea<2,>=1.0.1->-r requirements.txt (line 20)) (1.10.0)
Requirement already satisfied: jsonmerge in c:\users\marsal01\appdata\local\programs\python\python37-32\lib\site-packages (from icetea<2,>=1.0.1->-r requirements.txt (line 20)) (1.5.1)
Requirement already satisfied: semver in c:\users\marsal01\appdata\local\programs\python\python37-32\lib\site-packages (from icetea<2,>=1.0.1->-r requirements.txt (line 20)) (2.8.1)
Requirement already satisfied: mbed-flasher==0.9.* in c:\users\marsal01\appdata\local\programs\python\python37-32\lib\site-packages (from icetea<2,>=1.0.1->-r requirements.txt (line 20)) (0.9.0)
Collecting pyshark-legacy (from icetea<2,>=1.0.1->-r requirements.txt (line 20))
  Using cached https://files.pythonhosted.org/packages/45/fd/048873d79182cdea0278826a54b29ff67877ffb1d2499f4f41db3a57af98/pyshark-legacy-0.3.8.tar.gz
Collecting cffi!=1.11.3,>=1.7 (from cryptography>=2.0.0->manifest-tool==1.4.5->-r requirements.txt (line 18))
  Using cached https://files.pythonhosted.org/packages/2d/9e/9d84a78d4ea3d0fa94f6d0e4bcd88406709312949f48f3853f26f8f52ebe/cffi-1.11.5-cp37-cp37m-win32.whl
Collecting asn1crypto>=0.21.0 (from cryptography>=2.0.0->manifest-tool==1.4.5->-r requirements.txt (line 18))
  Using cached https://files.pythonhosted.org/packages/ea/cd/35485615f45f30a510576f1a56d1e0a7ad7bd8ab5ed7cdc600ef7cd06222/asn1crypto-0.24.0-py2.py3-none-any.whl
Requirement already satisfied: setuptools in c:\users\marsal01\appdata\local\programs\python\python37-32\lib\site-packages (from protobuf<3.6.0,>=3.5.0->manifest-tool==1.4.5->-r requirements.txt (line 18)) (39.0.1)
Requirement already satisfied: monotonic>=0.1 in c:\users\marsal01\appdata\local\programs\python\python37-32\lib\site-packages (from fasteners->mbed-ls==1.*,>=1.4.2->-r requirements.txt (line 9)) (1.5)
Requirement already satisfied: enum34 in c:\users\marsal01\appdata\local\programs\python\python37-32\lib\site-packages (from pyOCD>=0.8.1a1->mbed-host-tests>=1.1.2->-r requirements.txt (line 10)) (1.1.6)
Requirement already satisfied: websocket-client in c:\users\marsal01\appdata\local\programs\python\python37-32\lib\site-packages (from pyOCD>=0.8.1a1->mbed-host-tests>=1.1.2->-r requirements.txt (line 10)) (0.53.0)
Requirement already satisfied: intervaltree in c:\users\marsal01\appdata\local\programs\python\python37-32\lib\site-packages (from pyOCD>=0.8.1a1->mbed-host-tests>=1.1.2->-r requirements.txt (line 10)) (2.1.0)
Requirement already satisfied: pywinusb>=0.4.0 in c:\users\marsal01\appdata\local\programs\python\python37-32\lib\site-packages (from pyOCD>=0.8.1a1->mbed-host-tests>=1.1.2->-r requirements.txt (line 10)) (0.4.2)
Requirement already satisfied: pbr>=0.11 in c:\users\marsal01\appdata\local\programs\python\python37-32\lib\site-packages (from mock->mbed-greentea>=0.2.24->-r requirements.txt (line 11)) (4.2.0)
Requirement already satisfied: lxml in c:\users\marsal01\appdata\local\programs\python\python37-32\lib\site-packages (from pyshark-legacy->icetea<2,>=1.0.1->-r requirements.txt (line 20)) (4.2.5)
Requirement already satisfied: py in c:\users\marsal01\appdata\local\programs\python\python37-32\lib\site-packages (from pyshark-legacy->icetea<2,>=1.0.1->-r requirements.txt (line 20)) (1.6.0)
Collecting trollius==1.0.4 (from pyshark-legacy->icetea<2,>=1.0.1->-r requirements.txt (line 20))
  Using cached https://files.pythonhosted.org/packages/aa/e6/4141db437f55e6ee7a3fb69663239e3fde7841a811b4bef293145ad6c836/trollius-1.0.4.tar.gz
Collecting logbook (from pyshark-legacy->icetea<2,>=1.0.1->-r requirements.txt (line 20))
  Using cached https://files.pythonhosted.org/packages/36/4b/b610bee18d5cfc4cec7dde056639994e9b34991e4c57816bfff0f3d0ac33/Logbook-1.4.0.tar.gz
Collecting pycparser (from cffi!=1.11.3,>=1.7->cryptography>=2.0.0->manifest-tool==1.4.5->-r requirements.txt (line 18))
  Using cached https://files.pythonhosted.org/packages/8c/2d/aad7f16146f4197a11f8e91fb81df177adcc2073d36a17b1491fd09df6ed/pycparser-2.18.tar.gz
Requirement already satisfied: sortedcontainers in c:\users\marsal01\appdata\local\programs\python\python37-32\lib\site-packages (from intervaltree->pyOCD>=0.8.1a1->mbed-host-tests>=1.1.2->-r requirements.txt (line 10)) (2.0.5)
Installing collected packages: trollius, logbook, pyshark-legacy, icetea, ecdsa, pycparser, cffi, asn1crypto, cryptography, pyasn1, pyparsing, asn1ate, protobuf, manifest-tool
  Running setup.py install for trollius ... error
    Complete output from command c:\users\marsal01\appdata\local\programs\python\python37-32\python.exe -u -c "import setuptools, tokenize;__file__='C:\\Users\\marsal01\\AppData\\Local\\Temp\\pip-install-flcn6c3f\\trollius\\setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record C:\Users\marsal01\AppData\Local\Temp\pip-record-ieoldviq\install-record.txt --single-version-externally-managed --compile:
    running install
    running build
    running build_py
    creating build
    creating build\lib.win32-3.7
    creating build\lib.win32-3.7\trollius
    copying trollius\base_events.py -> build\lib.win32-3.7\trollius
    copying trollius\base_subprocess.py -> build\lib.win32-3.7\trollius
    copying trollius\compat.py -> build\lib.win32-3.7\trollius
    copying trollius\constants.py -> build\lib.win32-3.7\trollius
    copying trollius\coroutines.py -> build\lib.win32-3.7\trollius
    copying trollius\events.py -> build\lib.win32-3.7\trollius
    copying trollius\executor.py -> build\lib.win32-3.7\trollius
    copying trollius\futures.py -> build\lib.win32-3.7\trollius
    copying trollius\locks.py -> build\lib.win32-3.7\trollius
    copying trollius\log.py -> build\lib.win32-3.7\trollius
    copying trollius\proactor_events.py -> build\lib.win32-3.7\trollius
    copying trollius\protocols.py -> build\lib.win32-3.7\trollius
    copying trollius\py27_weakrefset.py -> build\lib.win32-3.7\trollius
    copying trollius\py33_exceptions.py -> build\lib.win32-3.7\trollius
    copying trollius\py33_winapi.py -> build\lib.win32-3.7\trollius
    copying trollius\py3_ssl.py -> build\lib.win32-3.7\trollius
    copying trollius\queues.py -> build\lib.win32-3.7\trollius
    copying trollius\selectors.py -> build\lib.win32-3.7\trollius
    copying trollius\selector_events.py -> build\lib.win32-3.7\trollius
    copying trollius\streams.py -> build\lib.win32-3.7\trollius
    copying trollius\subprocess.py -> build\lib.win32-3.7\trollius
    copying trollius\tasks.py -> build\lib.win32-3.7\trollius
    copying trollius\test_support.py -> build\lib.win32-3.7\trollius
    copying trollius\test_utils.py -> build\lib.win32-3.7\trollius
    copying trollius\time_monotonic.py -> build\lib.win32-3.7\trollius
    copying trollius\transports.py -> build\lib.win32-3.7\trollius
    copying trollius\unix_events.py -> build\lib.win32-3.7\trollius
    copying trollius\windows_events.py -> build\lib.win32-3.7\trollius
    copying trollius\windows_utils.py -> build\lib.win32-3.7\trollius
    copying trollius\__init__.py -> build\lib.win32-3.7\trollius
    running build_ext
    building 'trollius._overlapped' extension
    error: Microsoft Visual C++ 14.0 is required. Get it with "Microsoft Visual C++ Build Tools": http://landinghub.visualstudio.com/visual-cpp-build-tools

    ----------------------------------------
Command "c:\users\marsal01\appdata\local\programs\python\python37-32\python.exe -u -c "import setuptools, tokenize;__file__='C:\\Users\\marsal01\\AppData\\Local\\Temp\\pip-install-flcn6c3f\\trollius\\setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record C:\Users\marsal01\AppData\Local\Temp\pip-record-ieoldviq\install-record.txt --single-version-externally-managed --compile" failed with error code 1 in C:\Users\marsal01\AppData\Local\Temp\pip-install-flcn6c3f\trollius\

Summary, I should not need to install 3rd party tools, such Microsoft Visual C++.

[ ] Question
[ ] Enhancement
[X] Bug

MarceloSalazar commented 6 years ago

Workaround: Install "Microsoft Visual C++ Build Tools"

ciarmcom commented 6 years ago

ARM Internal Ref: MBOTRIAGE-1650

theotherjimmy commented 6 years ago

@OPpuolitaival Looks like you have another native-install-using dep. I thought we got rid of pyshark.

OPpuolitaival commented 6 years ago

@theotherjimmy you are right. There is pyshark library in icetea dependencies which depends on trollius that need compiling. We need to make whole wireshark thing optional

OPpuolitaival commented 6 years ago

@jonikula can you make wireshark optional?

jonikula commented 6 years ago

I guess we have to.

jonikula commented 6 years ago

I just pushed this PR. https://github.com/ARMmbed/icetea/pull/43

It very roughly pulls out the entire wireshark support. If some tests need that, then this will break them. If we want to support those tests, more time to rework the feature is needed.

jupe commented 6 years ago

Here is bit better approach: https://github.com/ARMmbed/icetea/pull/44 (does not drop feature - just change optionally it).

jupe commented 6 years ago

There was actually bug in icetea that tries to install pyshark-legacyfor python 3.x which are not even compatible - which causing this installation failure mentioned in description in first place. pyshark -module instead are compatible with python 3.x and should not need any compilers. In case of python2.x pyshark-legacy should contains all pre-compiled packages so it doesn't need compilers either unless some exotic environment is in use. So I'm pretty sure that https://github.com/ARMmbed/icetea/pull/34 fixes this issue and no needs for ARMmbed/icetea#44 at all.

jupe commented 6 years ago

@MarceloSalazar, could you verify that icetea#c16fec2c34f5362306fd4b3717a1a1c9306ccf44 does not require anymore visual-studio when installing ?

MarceloSalazar commented 6 years ago

@jupe confirmed c16fec2c34f5362306fd4b3717a1a1c9306ccf44 doesn't seem to require visual-studio when tested in a fresh Win10/Python 3.6 PC. Thanks!