Cannot install aioserial package using pip
-
Hello,
I'm trying to install python's module
aioserial
(https://pypi.org/project/aioserial/) and I'm getting the following error:This is not the first time pip has failed to install a package on the omega. This happens often and depending on the situation I usually switch between using
opkg
andpip
to install python modules, but this time I don't have aioserial available in theopenwrt
package feed that has python packages to download.I tried this on an omega running
openwrt 18.06
and another one runningopenwrt 22.03
I even used a freshly flashed one running18.06
. I got the same results in all of my attempts. I would really appreciate some help,Thanks!
-
@SUPERMARINE98 My hunch is that one of aioserial's dependencies needs to be compiled. Since your Omega doesn't have the compiler installed the whole package installation fails.
Is there a way to get pip to be more verbose with the error message? That way we'll know what we're dealing with.
-
Hi Lazar,
This are the full logs that I get after running
pip3 install --verbose --verbose aioserial 2>&1 | tee installation.log
:Using pip 23.2.1 from /usr/lib/python3.10/site-packages/pip (python 3.10) Non-user install because site-packages writeable Created temporary directory: /tmp/pip-build-tracker-zt7wtic2 Initialized build tracking at /tmp/pip-build-tracker-zt7wtic2 Created build tracker: /tmp/pip-build-tracker-zt7wtic2 Entered build tracker: /tmp/pip-build-tracker-zt7wtic2 Created temporary directory: /tmp/pip-install-el_o6lah Created temporary directory: /tmp/pip-ephem-wheel-cache-4a8i8g_e 1 location(s) to search for versions of aioserial: * https://pypi.org/simple/aioserial/ Fetching project page and analyzing links: https://pypi.org/simple/aioserial/ Getting page https://pypi.org/simple/aioserial/ Found index url https://pypi.org/simple/ Looking up "https://pypi.org/simple/aioserial/" in the cache Request header has "max_age" as 0, cache bypassed Starting new HTTPS connection (1): pypi.org:443 https://pypi.org:443 "GET /simple/aioserial/ HTTP/1.1" 200 1938 Updating cache with response from "https://pypi.org/simple/aioserial/" etag object cached for 1209600 seconds Caching due to etag Fetched page https://pypi.org/simple/aioserial/ as application/vnd.pypi.simple.v1+json Found link https://files.pythonhosted.org/packages/ba/35/0990e159396a67b1da5f851ca7f542514a894429c30b2a848e4dff86c412/aioserial-1.0.10.tar.gz (from https://pypi.org/simple/aioserial/) (requires-python:>=3.7), version: 1.0.10 Found link https://files.pythonhosted.org/packages/df/6f/7e91993bab5763c7ad07bdd0fc76e64a7a152dfa0fc26edb5397f20168ae/aioserial-1.1.0.tar.gz (from https://pypi.org/simple/aioserial/) (requires-python:>=3.6), version: 1.1.0 Found link https://files.pythonhosted.org/packages/42/21/c4d100fb803645fd670e9ddf6a13162adc92a66f38d562e15c2f3cd053fb/aioserial-1.1.1.tar.gz (from https://pypi.org/simple/aioserial/) (requires-python:>=3.6), version: 1.1.1 Found link https://files.pythonhosted.org/packages/43/bb/8cd2217e0d105638ed83b796b2f5d279341f7a789d1af366a3c335f6f81a/aioserial-1.1.2.tar.gz (from https://pypi.org/simple/aioserial/) (requires-python:>=3.6), version: 1.1.2 Found link https://files.pythonhosted.org/packages/97/55/40dcb75c1edc827e0ce9c7238862c8b9822ee6679247e7a45bfabe34b6fa/aioserial-1.1.3.tar.gz (from https://pypi.org/simple/aioserial/) (requires-python:>=3.6), version: 1.1.3 Found link https://files.pythonhosted.org/packages/94/6e/f5d8cd97d4dc19fa0e563f7ca443c8ab223d21475d8ce2b9ef43b123d342/aioserial-1.1.4.tar.gz (from https://pypi.org/simple/aioserial/) (requires-python:>=3.6), version: 1.1.4 Found link https://files.pythonhosted.org/packages/25/ea/faa63b8f0516e70b00c03e0fbe5a7af1858b3698908de9d251d727471e83/aioserial-1.2.1-py3-none-any.whl (from https://pypi.org/simple/aioserial/) (requires-python:>=3.6,<4.0), version: 1.2.1 Found link https://files.pythonhosted.org/packages/d3/5b/0ad283e7c61401c86c4c02568eea9a747c7518d1153057e5339cd200bd1d/aioserial-1.2.1.tar.gz (from https://pypi.org/simple/aioserial/) (requires-python:>=3.6,<4.0), version: 1.2.1 Found link https://files.pythonhosted.org/packages/45/61/4c3ba236f42b1d57adc1bf90ea8c97f203648c84db7a890aec7b4e6ca634/aioserial-1.2.2-py3-none-any.whl (from https://pypi.org/simple/aioserial/) (requires-python:>=3.6,<4.0), version: 1.2.2 Found link https://files.pythonhosted.org/packages/5f/0c/4681726772b05118dfa939f46c2bc527df5701c6b98932964f36ceb687af/aioserial-1.2.2.tar.gz (from https://pypi.org/simple/aioserial/) (requires-python:>=3.6,<4.0), version: 1.2.2 Found link https://files.pythonhosted.org/packages/74/e6/6a8685407cd7b2f97b8d995fe56d50dd0ef8be1b492e16aa6a8cea848e3e/aioserial-1.2.3-py3-none-any.whl (from https://pypi.org/simple/aioserial/) (requires-python:>=3.6,<4.0), version: 1.2.3 Found link https://files.pythonhosted.org/packages/e4/dc/9bd5a9d3baf7dd7334dc66625deae5e7f9a53826e7d9042152629e86847c/aioserial-1.2.3.tar.gz (from https://pypi.org/simple/aioserial/) (requires-python:>=3.6,<4.0), version: 1.2.3 Found link https://files.pythonhosted.org/packages/9a/4b/dc5b6a0a5bcd3f92f509b8d90a4aada83bd37e67978cb6f5546a2b9ea7e1/aioserial-1.3.0-py3-none-any.whl (from https://pypi.org/simple/aioserial/) (requires-python:>=3.6,<4.0), version: 1.3.0 Found link https://files.pythonhosted.org/packages/9b/db/54ec487184e5d0d5c257ccf9de20b0f446e14cc5a99b27698ea5b8138ece/aioserial-1.3.0.tar.gz (from https://pypi.org/simple/aioserial/) (requires-python:>=3.6,<4.0), version: 1.3.0 Found link https://files.pythonhosted.org/packages/c1/0c/7aa5e4fdfc8353a06374ae768d9bd8f3d8109c5f1d6829906ba16fdd1a2d/aioserial-1.3.1.tar.gz (from https://pypi.org/simple/aioserial/) (requires-python:>=3.6,<4.0), version: 1.3.1 Skipping link: not a file: https://pypi.org/simple/aioserial/ Given no hashes to check 15 links for project 'aioserial': discarding no candidates Collecting aioserial Created temporary directory: /tmp/pip-unpack-3sv60b98 Looking up "https://files.pythonhosted.org/packages/c1/0c/7aa5e4fdfc8353a06374ae768d9bd8f3d8109c5f1d6829906ba16fdd1a2d/aioserial-1.3.1.tar.gz" in the cache No cache entry available Starting new HTTPS connection (1): files.pythonhosted.org:443 https://files.pythonhosted.org:443 "GET /packages/c1/0c/7aa5e4fdfc8353a06374ae768d9bd8f3d8109c5f1d6829906ba16fdd1a2d/aioserial-1.3.1.tar.gz HTTP/1.1" 200 9608 Downloading aioserial-1.3.1.tar.gz (9.6 kB) Ignoring unknown cache-control directive: immutable Updating cache with response from "https://files.pythonhosted.org/packages/c1/0c/7aa5e4fdfc8353a06374ae768d9bd8f3d8109c5f1d6829906ba16fdd1a2d/aioserial-1.3.1.tar.gz" etag object cached for 1209600 seconds Caching due to etag Added aioserial from https://files.pythonhosted.org/packages/c1/0c/7aa5e4fdfc8353a06374ae768d9bd8f3d8109c5f1d6829906ba16fdd1a2d/aioserial-1.3.1.tar.gz to build tracker '/tmp/pip-build-tracker-zt7wtic2' Created temporary directory: /tmp/pip-build-env-bxgkr8ab Installing build dependencies: started Running command pip subprocess to install build dependencies Using pip 23.2.1 from /usr/lib/python3.10/site-packages/pip (python 3.10) Collecting poetry>=0.12 Obtaining dependency information for poetry>=0.12 from https://files.pythonhosted.org/packages/7d/25/f3bfda3c458d114005af99441d009936b85a34a730aeb9cf57fb2630d9f7/poetry-1.6.1-py3-none-any.whl.metadata Downloading poetry-1.6.1-py3-none-any.whl.metadata (6.8 kB) Collecting build<0.11.0,>=0.10.0 (from poetry>=0.12) Downloading build-0.10.0-py3-none-any.whl (17 kB) Collecting cachecontrol[filecache]<0.14.0,>=0.13.0 (from poetry>=0.12) Obtaining dependency information for cachecontrol[filecache]<0.14.0,>=0.13.0 from https://files.pythonhosted.org/packages/1d/e3/a22348e6226dcd585d5a4b5f0175b3a16dabfd3912cbeb02f321d00e56c7/cachecontrol-0.13.1-py3-none-any.whl.metadata Downloading cachecontrol-0.13.1-py3-none-any.whl.metadata (3.0 kB) Link requires a different Python (3.10.12 not in: '>=2.7.0.0,<2.8.0.0,>=3.4.0.0,<4.0.0.0'): https://files.pythonhosted.org/packages/3d/53/4eaeead9a3564955a66ad25d99ddac161e9abc67646384019255afd2e0ce/cleo-0.6.2-py2.py3-none-any.whl (from https://pypi.org/simple/cleo/) (requires-python:>=2.7.0.0,<2.8.0.0,>=3.4.0.0,<4.0.0.0) Link requires a different Python (3.10.12 not in: '>=2.7.0.0,<2.8.0.0,>=3.4.0.0,<4.0.0.0'): https://files.pythonhosted.org/packages/57/af/a17f5e4184a872e8916d0fd84d77513c74cd055585c1936181d9f9a8c69e/cleo-0.6.2.tar.gz (from https://pypi.org/simple/cleo/) (requires-python:>=2.7.0.0,<2.8.0.0,>=3.4.0.0,<4.0.0.0) Link requires a different Python (3.10.12 not in: '>=2.7.0.0,<2.8.0.0,>=3.4.0.0,<4.0.0.0'): https://files.pythonhosted.org/packages/f6/be/f92c1221bd2acd9bb170d8097ce62ea2905e3bd8a0061ecbe76db99d8e8d/cleo-0.6.3-py2.py3-none-any.whl (from https://pypi.org/simple/cleo/) (requires-python:>=2.7.0.0,<2.8.0.0,>=3.4.0.0,<4.0.0.0) Link requires a different Python (3.10.12 not in: '>=2.7.0.0,<2.8.0.0,>=3.4.0.0,<4.0.0.0'): https://files.pythonhosted.org/packages/69/49/f23c30b41eee47d3f9032c427f18616a8ff83c64d7210cad5ab5ff9ef8b4/cleo-0.6.3.tar.gz (from https://pypi.org/simple/cleo/) (requires-python:>=2.7.0.0,<2.8.0.0,>=3.4.0.0,<4.0.0.0) Collecting cleo<3.0.0,>=2.0.0 (from poetry>=0.12) Downloading cleo-2.0.1-py3-none-any.whl (77 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 77.3/77.3 kB 95.5 kB/s eta 0:00:00 Collecting crashtest<0.5.0,>=0.4.1 (from poetry>=0.12) Downloading crashtest-0.4.1-py3-none-any.whl (7.6 kB) Collecting dulwich<0.22.0,>=0.21.2 (from poetry>=0.12) Downloading dulwich-0.21.6.tar.gz (445 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 445.5/445.5 kB 123.7 kB/s eta 0:00:00 Installing build dependencies: started Running command pip subprocess to install build dependencies Using pip 23.2.1 from /usr/lib/python3.10/site-packages/pip (python 3.10) Collecting setuptools>=61.2 Obtaining dependency information for setuptools>=61.2 from https://files.pythonhosted.org/packages/bb/26/7945080113158354380a12ce26873dd6c1ebd88d47f5bc24e2c5bb38c16a/setuptools-68.2.2-py3-none-any.whl.metadata Downloading setuptools-68.2.2-py3-none-any.whl.metadata (6.3 kB) Downloading setuptools-68.2.2-py3-none-any.whl (807 kB)
I left it running for about 20 minutes but it seems like execution freezes at the last log.
-
@SUPERMARINE98 thanks for the detailed logs. We still haven't ruled out if there's some compilation required.
Our next step should be to determine what's going on with the setuptools installation. Did the Omega2 maybe run out of space? You can check by running
df -h
Here's sample output:
If the
/dev/mtdblock6
partition is full or close to full that's the issue. You'll need to boot from external storage to have more storage space.If not, then there's something wonky with pip's installation of setuptools. For both the Onion v0.3.4 firmware and openwrt 22.03, there's a
python3-setuptools
package that can be installed with opkg.
Tryopkg update; opkg install python3-setuptools
and then running your pip command again.
-
@Lazar-Demin I already had the omega setup to boot from external storage when I attempted to install
aioserial
Also, when I tried to install
python3-setuptools
package, it appears that is already installed
-
@SUPERMARINE98 but then this line from your pip command output
Downloading setuptools-68.2.2-py3-none-any.whl
indicates it's trying to install a newer version of setuptools.Maybe pip just runs out of memory? Try making a swap file to extend the Omega's available memory: http://docs.onion.io/omega2-docs/extending-omega-memory.html
And then trying to use pip to install only
setuptools
-
@Lazar-Demin I was able to successfully create a swap file. This approach really did something as the installation went on even further, although, it failed later on. This are the complete logs with double
--verbose
flags (Had to upload to google drive due to length and file extension restrictions with the forum post editor)I can clearly see that I get
OSError: [Errno 28] No space left on device
which seems weird as I have plenty of memory left in the overlay storage:root@Omega-8dac:/# df -h Filesystem Size Used Available Use% Mounted on /dev/root 4.5M 4.5M 0 100% /rom tmpfs 59.8M 20.9M 38.8M 35% /tmp /dev/mmcblk0p2 25.8G 147.9M 24.4G 1% /overlay overlayfs:/overlay 25.8G 147.9M 24.4G 1% / tmpfs 512.0K 0 512.0K 0% /dev /dev/mmcblk0p1 3.0G 896.7M 2.1G 29% /mnt/mmcblk0p1 /dev/mtdblock6 25.1M 748.0K 24.3M 3% /mnt/mtdblock6 /dev/sda1 14.4G 256.0M 14.2G 2% /mnt/sda1 root@Omega-8dac:/#
-
@SUPERMARINE98 I think it is running out of space in the /tmp directory. Try setting the environent variable to point to where you have the most space before you rur pip
TMPDIR=/mnt/sda1/tmp
pip .....