That got me a lot closer, but I think there is a dependency issue. Simply running
pip install arduino_iot_cloud
Raises an error:
Defaulting to user installation because normal site-packages is not writeable
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Collecting arduino_iot_cloud
Downloading https://www.piwheels.org/simple/arduino-iot-cloud/arduino_iot_cloud-0.0.7-py3-none-any.whl (19 kB)
Collecting cbor2>=5.4.6 (from arduino_iot_cloud)
Using cached cbor2-5.4.6-py3-none-any.whl (19 kB)
Collecting M2Crypto>=0.38.0 (from arduino_iot_cloud)
Using cached M2Crypto-0.38.0.tar.gz (1.2 MB)
Installing build dependencies ... done
Getting requirements to build wheel ... done
Preparing metadata (pyproject.toml) ... done
Collecting micropython-senml>=0.1.0 (from arduino_iot_cloud)
Using cached micropython_senml-0.1.0-py2.py3-none-any.whl (10 kB)
Building wheels for collected packages: M2Crypto
Building wheel for M2Crypto (pyproject.toml) ... error
error: subprocess-exited-with-error
Γ Building wheel for M2Crypto (pyproject.toml) did not run successfully.
β exit code: 1
β°β> [60 lines of output]
INFO:run_command:running bdist_wheel
INFO:run_command:running build
INFO:run_command:running build_py
INFO:copy_file:copying src/M2Crypto/threading.py -> build/lib.linux-armv7l-cpython-38/M2Crypto
INFO:copy_file:copying src/M2Crypto/RC4.py -> build/lib.linux-armv7l-cpython-38/M2Crypto
INFO:copy_file:copying src/M2Crypto/X509.py -> build/lib.linux-armv7l-cpython-38/M2Crypto
INFO:copy_file:copying src/M2Crypto/Err.py -> build/lib.linux-armv7l-cpython-38/M2Crypto
INFO:copy_file:copying src/M2Crypto/six.py -> build/lib.linux-armv7l-cpython-38/M2Crypto
INFO:copy_file:copying src/M2Crypto/util.py -> build/lib.linux-armv7l-cpython-38/M2Crypto
INFO:copy_file:copying src/M2Crypto/ASN1.py -> build/lib.linux-armv7l-cpython-38/M2Crypto
INFO:copy_file:copying src/M2Crypto/m2urllib.py -> build/lib.linux-armv7l-cpython-38/M2Crypto
INFO:copy_file:copying src/M2Crypto/httpslib.py -> build/lib.linux-armv7l-cpython-38/M2Crypto
INFO:copy_file:copying src/M2Crypto/callback.py -> build/lib.linux-armv7l-cpython-38/M2Crypto
INFO:copy_file:copying src/M2Crypto/m2urllib2.py -> build/lib.linux-armv7l-cpython-38/M2Crypto
INFO:copy_file:copying src/M2Crypto/RSA.py -> build/lib.linux-armv7l-cpython-38/M2Crypto
INFO:copy_file:copying src/M2Crypto/AuthCookie.py -> build/lib.linux-armv7l-cpython-38/M2Crypto
INFO:copy_file:copying src/M2Crypto/Engine.py -> build/lib.linux-armv7l-cpython-38/M2Crypto
INFO:copy_file:copying src/M2Crypto/Rand.py -> build/lib.linux-armv7l-cpython-38/M2Crypto
INFO:copy_file:copying src/M2Crypto/ftpslib.py -> build/lib.linux-armv7l-cpython-38/M2Crypto
INFO:copy_file:copying src/M2Crypto/m2xmlrpclib.py -> build/lib.linux-armv7l-cpython-38/M2Crypto
INFO:copy_file:copying src/M2Crypto/EVP.py -> build/lib.linux-armv7l-cpython-38/M2Crypto
INFO:copy_file:copying src/M2Crypto/DSA.py -> build/lib.linux-armv7l-cpython-38/M2Crypto
INFO:copy_file:copying src/M2Crypto/DH.py -> build/lib.linux-armv7l-cpython-38/M2Crypto
INFO:copy_file:copying src/M2Crypto/__init__.py -> build/lib.linux-armv7l-cpython-38/M2Crypto
INFO:copy_file:copying src/M2Crypto/m2.py -> build/lib.linux-armv7l-cpython-38/M2Crypto
INFO:copy_file:copying src/M2Crypto/BIO.py -> build/lib.linux-armv7l-cpython-38/M2Crypto
INFO:copy_file:copying src/M2Crypto/SMIME.py -> build/lib.linux-armv7l-cpython-38/M2Crypto
INFO:copy_file:copying src/M2Crypto/m2crypto.py -> build/lib.linux-armv7l-cpython-38/M2Crypto
INFO:copy_file:copying src/M2Crypto/BN.py -> build/lib.linux-armv7l-cpython-38/M2Crypto
INFO:copy_file:copying src/M2Crypto/EC.py -> build/lib.linux-armv7l-cpython-38/M2Crypto
INFO:mkpath:creating build/lib.linux-armv7l-cpython-38/M2Crypto/SSL
INFO:copy_file:copying src/M2Crypto/SSL/cb.py -> build/lib.linux-armv7l-cpython-38/M2Crypto/SSL
INFO:copy_file:copying src/M2Crypto/SSL/Context.py -> build/lib.linux-armv7l-cpython-38/M2Crypto/SSL
INFO:copy_file:copying src/M2Crypto/SSL/timeout.py -> build/lib.linux-armv7l-cpython-38/M2Crypto/SSL
INFO:copy_file:copying src/M2Crypto/SSL/Cipher.py -> build/lib.linux-armv7l-cpython-38/M2Crypto/SSL
INFO:copy_file:copying src/M2Crypto/SSL/TwistedProtocolWrapper.py -> build/lib.linux-armv7l-cpython-38/M2Crypto/SSL
INFO:copy_file:copying src/M2Crypto/SSL/Session.py -> build/lib.linux-armv7l-cpython-38/M2Crypto/SSL
INFO:copy_file:copying src/M2Crypto/SSL/ssl_dispatcher.py -> build/lib.linux-armv7l-cpython-38/M2Crypto/SSL
INFO:copy_file:copying src/M2Crypto/SSL/Checker.py -> build/lib.linux-armv7l-cpython-38/M2Crypto/SSL
INFO:copy_file:copying src/M2Crypto/SSL/Connection.py -> build/lib.linux-armv7l-cpython-38/M2Crypto/SSL
INFO:copy_file:copying src/M2Crypto/SSL/__init__.py -> build/lib.linux-armv7l-cpython-38/M2Crypto/SSL
INFO:copy_file:copying src/M2Crypto/SSL/SSLServer.py -> build/lib.linux-armv7l-cpython-38/M2Crypto/SSL
INFO:run_command:running egg_info
INFO:write_pkg_info:writing src/M2Crypto.egg-info/PKG-INFO
INFO:write_file:writing dependency_links to src/M2Crypto.egg-info/dependency_links.txt
INFO:write_file:writing top-level names to src/M2Crypto.egg-info/top_level.txt
INFO:read_manifest:reading manifest file 'src/M2Crypto.egg-info/SOURCES.txt'
INFO:read_template:reading manifest template 'MANIFEST.in'
WARNING:process_template_line:warning: no files found matching 'SWIG/*.i'
WARNING:process_template_line:warning: no files found matching 'SWIG/*.h'
WARNING:process_template_line:warning: no files found matching 'SWIG/*.def'
WARNING:process_template_line:warning: no files found matching 'SWIG/_m2crypto_wrap.c'
WARNING:process_template_line:warning: no files found matching 'M2Crypto/m2crypto.py'
INFO:add_license_files:adding license file 'LICENCE'
INFO:execute:writing manifest file 'src/M2Crypto.egg-info/SOURCES.txt'
INFO:run_command:running build_ext
INFO:build_extension:building 'M2Crypto._m2crypto' extension
INFO:swig_sources:swigging src/SWIG/_m2crypto.i to src/SWIG/_m2crypto_wrap.c
INFO:spawn:swig -python -py3 -I/usr/lib/gcc/arm-linux-gnueabihf/8/include -I/usr/local/include -I/usr/lib/gcc/arm-linux-gnueabihf/8/include-fixed -I/usr/include/arm-linux-gnueabihf -I/usr/include -D__armv7l__ -I/usr/include/python3.8 -I/usr/include/openssl -includeall -modern -builtin -outdir /tmp/pip-install-wy38qd7i/m2crypto_5afbae439c774477820194e58f4cedee/src/M2Crypto -o src/SWIG/_m2crypto_wrap.c src/SWIG/_m2crypto.i
error: command 'swig' failed: No such file or directory
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
ERROR: Failed building wheel for M2Crypto
Failed to build M2Crypto
ERROR: Could not build wheels for M2Crypto, which is required to install pyproject.toml-based projects
So I then ran pip install swig which tried to load, but also failed indicating that it can't find swig.
> pip install swig
Collecting swig
Downloading swig-4.1.1-py2.py3-none-win_amd64.whl (2.5 MB)
ββββββββββββββββββββββββββββββββββββββββ 2.5/2.5 MB 5.8 MB/s eta 0:00:00
Installing collected packages: swig
Successfully installed swig-4.1.1
(study_session) PS C:\Users\robsm\OneDrive\Documents\Proj\Python_VS\numpy5> pip install arduino-iot-cloud
Collecting arduino-iot-cloud
Using cached arduino_iot_cloud-0.0.7-py3-none-any.whl (19 kB)
Collecting cbor2>=5.4.6 (from arduino-iot-cloud)
Using cached cbor2-5.4.6-cp311-cp311-win_amd64.whl (59 kB)
Collecting M2Crypto>=0.38.0 (from arduino-iot-cloud)
Using cached M2Crypto-0.38.0.tar.gz (1.2 MB)
Installing build dependencies ... done
Getting requirements to build wheel ... done
Preparing metadata (pyproject.toml) ... done
Collecting micropython-senml>=0.1.0 (from arduino-iot-cloud)
Using cached micropython_senml-0.1.0-py2.py3-none-any.whl (10 kB)
Building wheels for collected packages: M2Crypto
Building wheel for M2Crypto (pyproject.toml) ... error
error: subprocess-exited-with-error
Γ Building wheel for M2Crypto (pyproject.toml) did not run successfully.
β exit code: 1
β°β> [65 lines of output]
INFO:run_command:running bdist_wheel
INFO:run_command:running build
INFO:run_command:running build_py
INFO:copy_file:copying src\M2Crypto\ASN1.py -> build\lib.win-amd64-cpython-311\M2Crypto
INFO:copy_file:copying src\M2Crypto\AuthCookie.py -> build\lib.win-amd64-cpython-311\M2Crypto
INFO:copy_file:copying src\M2Crypto\BIO.py -> build\lib.win-amd64-cpython-311\M2Crypto
INFO:copy_file:copying src\M2Crypto\BN.py -> build\lib.win-amd64-cpython-311\M2Crypto
INFO:copy_file:copying src\M2Crypto\callback.py -> build\lib.win-amd64-cpython-311\M2Crypto
INFO:copy_file:copying src\M2Crypto\DH.py -> build\lib.win-amd64-cpython-311\M2Crypto
INFO:copy_file:copying src\M2Crypto\DSA.py -> build\lib.win-amd64-cpython-311\M2Crypto
INFO:copy_file:copying src\M2Crypto\EC.py -> build\lib.win-amd64-cpython-311\M2Crypto
INFO:copy_file:copying src\M2Crypto\Engine.py -> build\lib.win-amd64-cpython-311\M2Crypto
INFO:copy_file:copying src\M2Crypto\Err.py -> build\lib.win-amd64-cpython-311\M2Crypto
INFO:copy_file:copying src\M2Crypto\EVP.py -> build\lib.win-amd64-cpython-311\M2Crypto
INFO:copy_file:copying src\M2Crypto\ftpslib.py -> build\lib.win-amd64-cpython-311\M2Crypto
INFO:copy_file:copying src\M2Crypto\httpslib.py -> build\lib.win-amd64-cpython-311\M2Crypto
INFO:copy_file:copying src\M2Crypto\m2.py -> build\lib.win-amd64-cpython-311\M2Crypto
INFO:copy_file:copying src\M2Crypto\m2crypto.py -> build\lib.win-amd64-cpython-311\M2Crypto
INFO:copy_file:copying src\M2Crypto\m2urllib.py -> build\lib.win-amd64-cpython-311\M2Crypto
INFO:copy_file:copying src\M2Crypto\m2urllib2.py -> build\lib.win-amd64-cpython-311\M2Crypto
INFO:copy_file:copying src\M2Crypto\m2xmlrpclib.py -> build\lib.win-amd64-cpython-311\M2Crypto
INFO:copy_file:copying src\M2Crypto\Rand.py -> build\lib.win-amd64-cpython-311\M2Crypto
INFO:copy_file:copying src\M2Crypto\RC4.py -> build\lib.win-amd64-cpython-311\M2Crypto
INFO:copy_file:copying src\M2Crypto\RSA.py -> build\lib.win-amd64-cpython-311\M2Crypto
INFO:copy_file:copying src\M2Crypto\six.py -> build\lib.win-amd64-cpython-311\M2Crypto
INFO:copy_file:copying src\M2Crypto\SMIME.py -> build\lib.win-amd64-cpython-311\M2Crypto
INFO:copy_file:copying src\M2Crypto\threading.py -> build\lib.win-amd64-cpython-311\M2Crypto
INFO:copy_file:copying src\M2Crypto\util.py -> build\lib.win-amd64-cpython-311\M2Crypto
INFO:copy_file:copying src\M2Crypto\X509.py -> build\lib.win-amd64-cpython-311\M2Crypto
INFO:copy_file:copying src\M2Crypto\__init__.py -> build\lib.win-amd64-cpython-311\M2Crypto
INFO:mkpath:creating build\lib.win-amd64-cpython-311\M2Crypto\SSL
INFO:copy_file:copying src\M2Crypto\SSL\cb.py -> build\lib.win-amd64-cpython-311\M2Crypto\SSL
INFO:copy_file:copying src\M2Crypto\SSL\Checker.py -> build\lib.win-amd64-cpython-311\M2Crypto\SSL
INFO:copy_file:copying src\M2Crypto\SSL\Cipher.py -> build\lib.win-amd64-cpython-311\M2Crypto\SSL
INFO:copy_file:copying src\M2Crypto\SSL\Connection.py -> build\lib.win-amd64-cpython-311\M2Crypto\SSL
INFO:copy_file:copying src\M2Crypto\SSL\Context.py -> build\lib.win-amd64-cpython-311\M2Crypto\SSL
INFO:copy_file:copying src\M2Crypto\SSL\Session.py -> build\lib.win-amd64-cpython-311\M2Crypto\SSL
INFO:copy_file:copying src\M2Crypto\SSL\SSLServer.py -> build\lib.win-amd64-cpython-311\M2Crypto\SSL
INFO:copy_file:copying src\M2Crypto\SSL\ssl_dispatcher.py -> build\lib.win-amd64-cpython-311\M2Crypto\SSL
INFO:copy_file:copying src\M2Crypto\SSL\timeout.py -> build\lib.win-amd64-cpython-311\M2Crypto\SSL
INFO:copy_file:copying src\M2Crypto\SSL\TwistedProtocolWrapper.py -> build\lib.win-amd64-cpython-311\M2Crypto\SSL
INFO:copy_file:copying src\M2Crypto\SSL\__init__.py -> build\lib.win-amd64-cpython-311\M2Crypto\SSL
INFO:run_command:running egg_info
INFO:write_pkg_info:writing src\M2Crypto.egg-info\PKG-INFO
Traceback (most recent call last):
File "<frozen runpy>", line 198, in _run_module_as_main
File "<frozen runpy>", line 88, in _run_code
File "C:\Users\robsm\OneDrive\Documents\Proj\Python_VS\numpy5\study_session\Scripts\swig.exe\__main__.py", line 4, in <module>
ModuleNotFoundError: No module named 'swig'
error: command 'C:\\Users\\robsm\\OneDrive\\Documents\\Proj\\Python_VS\\numpy5\\study_session\\Scripts\\swig.exe' failed with exit code 1
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
ERROR: Failed building wheel for M2Crypto
Failed to build M2Crypto
ERROR: Could not build wheels for M2Crypto, which is required to install pyproject.toml-based projects
On a Raspberry Pi 3B+ with Python 3.8.0 swig installed ok, but pip install arduino-iot-cloud returned an error that it couldn't find swig.
.
.
.
INFO:run_command:running build_ext
INFO:build_extension:building 'M2Crypto._m2crypto' extension
INFO:swig_sources:swigging src/SWIG/_m2crypto.i to src/SWIG/_m2crypto_wrap.c
INFO:spawn:swig -python -py3 -I/usr/lib/gcc/arm-linux-gnueabihf/8/include -I/usr/local/include -I/usr/lib/gcc/arm-linux-gnueabihf/8/include -fixed -I/usr/include/arm-linux-gnueabihf -I/usr/include -D__armv7l__ -I/usr/include/python3.8 -I/usr/include/openssl -includeall -modern -builti n -outdir /tmp/pip-install-2krjj2n_/m2crypto_6f8591b8ecb14b26bf178bf52f69d7da/src/M2Crypto -o src/SWIG/_m2crypto_wrap.c src/SWIG/_m2crypto.i
Traceback (most recent call last):
File "/home/pi/.local/bin/swig", line 5, in <module>
from swig import swig
ModuleNotFoundError: No module named 'swig'
error: command '/home/pi/.local/bin/swig' failed with exit code 1
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
ERROR: Failed building wheel for M2Crypto
Failed to build M2Crypto
ERROR: Could not build wheels for M2Crypto, which is required to install pyproject.toml-based projects
But swig is on the path
pi@Hub:~ $ which swig
/home/pi/.local/bin/swig
To be clear I ran:
pip install arduino-iot-cloud [It failed to install]
pip install swig [It installed ok]
pip install arduino-iot-cloud [It still failed to install]