aristanetworks / swi-tools

Scripts for handling Arista SWI and SWIX files
Apache License 2.0
11 stars 8 forks source link

pip3 install fails on missing command swig #8

Open PhirePhly opened 3 months ago

PhirePhly commented 3 months ago

Running on an AlmaLinux 9 install, the pip3 installation instructions fail. The documentation needs to be corrected for this.

[kenneth@node2 mtr]$ pip3 install switools
Defaulting to user installation because normal site-packages is not writeable
Collecting switools
  Downloading switools-1.2.tar.gz (28 kB)
Requirement already satisfied: jsonschema in /home/kenneth/.local/lib/python3.9/site-packages (from switools) (4.17.3)
Requirement already satisfied: pyparsing in /home/kenneth/.local/lib/python3.9/site-packages (from switools) (3.1.2)
Requirement already satisfied: PyYAML in /home/kenneth/.local/lib/python3.9/site-packages (from switools) (6.0.1)
Collecting M2Crypto
  Downloading M2Crypto-0.41.0.tar.gz (1.2 MB)
     |████████████████████████████████| 1.2 MB 3.9 MB/s
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Installing backend dependencies ... done
    Preparing wheel metadata ... done
Requirement already satisfied: pyrsistent!=0.17.0,!=0.17.1,!=0.17.2,>=0.14.0 in /home/kenneth/.local/lib/python3.9/site-packages (from jsonschema->switools) (0.20.0)
Requirement already satisfied: attrs>=17.4.0 in /home/kenneth/.local/lib/python3.9/site-packages (from jsonschema->switools) (23.2.0)
Using legacy 'setup.py install' for switools, since package 'wheel' is not installed.
Building wheels for collected packages: M2Crypto
  Building wheel for M2Crypto (PEP 517) ... error
  ERROR: Command errored out with exit status 1:
   command: /usr/bin/python3 /usr/lib/python3.9/site-packages/pip/_vendor/pep517/in_process/_in_process.py build_wheel /tmp/tmpo3wt2_m2
       cwd: /tmp/pip-install-xr65v8sx/m2crypto_67f9a3f9e6dd4cc391d4e2324eff6048
  Complete output (55 lines):
  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.linux-x86_64-cpython-39/M2Crypto
  INFO:copy_file:copying src/M2Crypto/AuthCookie.py -> build/lib.linux-x86_64-cpython-39/M2Crypto
  INFO:copy_file:copying src/M2Crypto/BIO.py -> build/lib.linux-x86_64-cpython-39/M2Crypto
  INFO:copy_file:copying src/M2Crypto/BN.py -> build/lib.linux-x86_64-cpython-39/M2Crypto
  INFO:copy_file:copying src/M2Crypto/DH.py -> build/lib.linux-x86_64-cpython-39/M2Crypto
  INFO:copy_file:copying src/M2Crypto/DSA.py -> build/lib.linux-x86_64-cpython-39/M2Crypto
  INFO:copy_file:copying src/M2Crypto/EC.py -> build/lib.linux-x86_64-cpython-39/M2Crypto
  INFO:copy_file:copying src/M2Crypto/EVP.py -> build/lib.linux-x86_64-cpython-39/M2Crypto
  INFO:copy_file:copying src/M2Crypto/Engine.py -> build/lib.linux-x86_64-cpython-39/M2Crypto
  INFO:copy_file:copying src/M2Crypto/Err.py -> build/lib.linux-x86_64-cpython-39/M2Crypto
  INFO:copy_file:copying src/M2Crypto/RC4.py -> build/lib.linux-x86_64-cpython-39/M2Crypto
  INFO:copy_file:copying src/M2Crypto/RSA.py -> build/lib.linux-x86_64-cpython-39/M2Crypto
  INFO:copy_file:copying src/M2Crypto/Rand.py -> build/lib.linux-x86_64-cpython-39/M2Crypto
  INFO:copy_file:copying src/M2Crypto/SMIME.py -> build/lib.linux-x86_64-cpython-39/M2Crypto
  INFO:copy_file:copying src/M2Crypto/X509.py -> build/lib.linux-x86_64-cpython-39/M2Crypto
  INFO:copy_file:copying src/M2Crypto/__init__.py -> build/lib.linux-x86_64-cpython-39/M2Crypto
  INFO:copy_file:copying src/M2Crypto/callback.py -> build/lib.linux-x86_64-cpython-39/M2Crypto
  INFO:copy_file:copying src/M2Crypto/ftpslib.py -> build/lib.linux-x86_64-cpython-39/M2Crypto
  INFO:copy_file:copying src/M2Crypto/httpslib.py -> build/lib.linux-x86_64-cpython-39/M2Crypto
  INFO:copy_file:copying src/M2Crypto/m2.py -> build/lib.linux-x86_64-cpython-39/M2Crypto
  INFO:copy_file:copying src/M2Crypto/m2urllib.py -> build/lib.linux-x86_64-cpython-39/M2Crypto
  INFO:copy_file:copying src/M2Crypto/m2urllib2.py -> build/lib.linux-x86_64-cpython-39/M2Crypto
  INFO:copy_file:copying src/M2Crypto/m2xmlrpclib.py -> build/lib.linux-x86_64-cpython-39/M2Crypto
  INFO:copy_file:copying src/M2Crypto/threading.py -> build/lib.linux-x86_64-cpython-39/M2Crypto
  INFO:copy_file:copying src/M2Crypto/util.py -> build/lib.linux-x86_64-cpython-39/M2Crypto
  INFO:mkpath:creating build/lib.linux-x86_64-cpython-39/M2Crypto/SSL
  INFO:copy_file:copying src/M2Crypto/SSL/Checker.py -> build/lib.linux-x86_64-cpython-39/M2Crypto/SSL
  INFO:copy_file:copying src/M2Crypto/SSL/Cipher.py -> build/lib.linux-x86_64-cpython-39/M2Crypto/SSL
  INFO:copy_file:copying src/M2Crypto/SSL/Connection.py -> build/lib.linux-x86_64-cpython-39/M2Crypto/SSL
  INFO:copy_file:copying src/M2Crypto/SSL/Context.py -> build/lib.linux-x86_64-cpython-39/M2Crypto/SSL
  INFO:copy_file:copying src/M2Crypto/SSL/SSLServer.py -> build/lib.linux-x86_64-cpython-39/M2Crypto/SSL
  INFO:copy_file:copying src/M2Crypto/SSL/Session.py -> build/lib.linux-x86_64-cpython-39/M2Crypto/SSL
  INFO:copy_file:copying src/M2Crypto/SSL/TwistedProtocolWrapper.py -> build/lib.linux-x86_64-cpython-39/M2Crypto/SSL
  INFO:copy_file:copying src/M2Crypto/SSL/__init__.py -> build/lib.linux-x86_64-cpython-39/M2Crypto/SSL
  INFO:copy_file:copying src/M2Crypto/SSL/cb.py -> build/lib.linux-x86_64-cpython-39/M2Crypto/SSL
  INFO:copy_file:copying src/M2Crypto/SSL/timeout.py -> build/lib.linux-x86_64-cpython-39/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 requirements to src/M2Crypto.egg-info/requires.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 'src/SWIG/_m2crypto_wrap.c'
  WARNING:process_template_line:warning: no files found matching 'src/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 -I/usr/lib/gcc/x86_64-redhat-linux/11/include -I/usr/local/include -I/usr/include -D__x86_64__ -I/usr/include/python3.9 -I/usr/include/openssl -includeall -builtin -outdir build/lib.linux-x86_64-cpython-39/M2Crypto -o src/SWIG/_m2crypto_wrap.c src/SWIG/_m2crypto.i
  error: command 'swig' failed: No such file or directory
  ----------------------------------------
  ERROR: Failed building wheel for M2Crypto
Failed to build M2Crypto
ERROR: Could not build wheels for M2Crypto which use PEP 517 and cannot be installed directly
[kenneth@node2 mtr]$ pip3 --version
pip 21.2.3 from /usr/lib/python3.9/site-packages/pip (python 3.9)
[kenneth@node2 mtr]$ python3 --version
Python 3.9.18
[kenneth@node2 mtr]$
PhirePhly commented 3 months ago

I got it working. I think this was all it took:

sudo dnf group install "Development Tools"
sudo dnf install python3-devel swig