Project

General

Profile

Actions

Bug #10164

closed

Requirements installation fails on MacOS

Added by Martin Cooper almost 2 years ago. Updated almost 2 years ago.

Status:
Closed
Priority:
High
Assignee:
Category:
-
Target version:
Start date:
12/08/2022
Due date:
% Done:

0%

Estimated time:
Chirp Version:
next (py3)
Model affected:
(All models)
Platform:
MacOS
Debug Log:
I read the instructions above:

Description

Running 'pip install -r requirements.txt' on MacOS fails with the same attrdict issue that is conditionally addressed in requirements.txt for Linux by installing an older version of wxPython. See:

https://github.com/wxWidgets/Phoenix/issues/2225#issuecomment-1312804049

Running 'pip install attrdict' and then 'pip install -r requirements.txt' allows wxPython 4.2.0 to install okay.

Actions #1

Updated by Dan Smith almost 2 years ago

  • Target version set to chirp-py3

Hmm, this is working fine on the macos builder:

python3 -mpip install -r requirements.txt
Defaulting to user installation because normal site-packages is not writeable
Ignoring wxPython: markers 'platform_system == "Linux"' don't match your environment
Ignoring pywin32: markers 'platform_system == "Windows"' don't match your environment
Requirement already satisfied: six in /Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/lib/python3.8/site-packages (from -r requirements.txt (line 1)) (1.15.0)
Collecting wxPython==4.2.0
  Downloading wxPython-4.2.0-cp38-cp38-macosx_11_0_universal2.whl (31.4 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 31.4/31.4 MB 26.3 MB/s eta 0:00:00
Collecting pyserial
  Downloading pyserial-3.5-py2.py3-none-any.whl (90 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 90.6/90.6 kB 5.0 MB/s eta 0:00:00
Collecting future
  Downloading future-0.18.2.tar.gz (829 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 829.2/829.2 kB 20.0 MB/s eta 0:00:00
  Preparing metadata (setup.py): started
  Preparing metadata (setup.py): finished with status 'done'
Collecting requests
  Downloading requests-2.28.1-py3-none-any.whl (62 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 62.8/62.8 kB 3.6 MB/s eta 0:00:00
Collecting pillow
  Downloading Pillow-9.3.0-cp38-cp38-macosx_10_10_x86_64.whl (3.3 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.3/3.3 MB 40.5 MB/s eta 0:00:00
Collecting numpy
  Downloading numpy-1.23.5-cp38-cp38-macosx_10_9_x86_64.whl (18.1 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 18.1/18.1 MB 29.8 MB/s eta 0:00:00
Collecting idna<4,>=2.5
  Downloading idna-3.4-py3-none-any.whl (61 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 61.5/61.5 kB 1.9 MB/s eta 0:00:00
Collecting certifi>=2017.4.17
  Downloading certifi-2022.9.24-py3-none-any.whl (161 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 161.1/161.1 kB 5.9 MB/s eta 0:00:00
Collecting charset-normalizer<3,>=2
  Downloading charset_normalizer-2.1.1-py3-none-any.whl (39 kB)
Collecting urllib3<1.27,>=1.21.1
  Downloading urllib3-1.26.13-py2.py3-none-any.whl (140 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 140.6/140.6 kB 5.0 MB/s eta 0:00:00
Building wheels for collected packages: future
  Building wheel for future (setup.py): started
  Building wheel for future (setup.py): finished with status 'done'
  Created wheel for future: filename=future-0.18.2-py3-none-any.whl size=491056 sha256=d303ab565f6a076e266c8b536548671dd2a76bcd1b6f79953ae76369ade29724
  Stored in directory: /Users/cloud/Library/Caches/pip/wheels/01/49/0c/4e0a697824c7bd6516afb22e1af9d51427ccd36c74b05a297e
Successfully built future
Installing collected packages: pyserial, urllib3, pillow, numpy, idna, future, charset-normalizer, certifi, wxPython, requests
  WARNING: The scripts pyserial-miniterm and pyserial-ports are installed in '/Users/cloud/Library/Python/3.8/bin' which is not on PATH.
  Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
  NOTE: The current PATH contains path(s) starting with `~`, which may not be expanded by all applications.
  WARNING: The scripts f2py, f2py3 and f2py3.8 are installed in '/Users/cloud/Library/Python/3.8/bin' which is not on PATH.
  Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
  NOTE: The current PATH contains path(s) starting with `~`, which may not be expanded by all applications.
  WARNING: The scripts futurize and pasteurize are installed in '/Users/cloud/Library/Python/3.8/bin' which is not on PATH.
  Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
  NOTE: The current PATH contains path(s) starting with `~`, which may not be expanded by all applications.
  WARNING: The script normalizer is installed in '/Users/cloud/Library/Python/3.8/bin' which is not on PATH.
  Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
  NOTE: The current PATH contains path(s) starting with `~`, which may not be expanded by all applications.
  WARNING: The scripts helpviewer, img2png, img2py, img2xpm, pycrust, pyshell, pyslices, pyslicesshell, pywxrc, wxdemo, wxdocs and wxget are installed in '/Users/cloud/Library/Python/3.8/bin' which is not on PATH.
  Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
  NOTE: The current PATH contains path(s) starting with `~`, which may not be expanded by all applications.
Successfully installed certifi-2022.9.24 charset-normalizer-2.1.1 future-0.18.2 idna-3.4 numpy-1.23.5 pillow-9.3.0 pyserial-3.5 requests-2.28.1 urllib3-1.26.13 wxPython-4.2.0

Which version of macos? And integrated python or from brew?

Actions #2

Updated by Martin Cooper almost 2 years ago

I notice that you don't seem to be starting from a "blank" Python installation ('six' is already installed, for example, per the 5th line of your log), so perhaps 'attrdict' is already installed in your base system?

I'm running Python 3.7.0 on High Sierra (10.13.6). I don't remember how 3.7 got on there, but it was neither homebrew nor macports (neither of which I use).

Actions #3

Updated by Dan Smith almost 2 years ago

Nope, it's a snap of a fresh install, six comes from apple already apparently, but that's it:

python3 -mpip freeze
six @ file:///AppleInternal/BuildRoot/Library/Caches/com.apple.xbs/Sources/python3/python3-103/six-1.15.0-py2.py3-none-any.whl

Are you getting the wheel? This worker is Big Sur, so a little newer, and 3.8 is what apple ships, so perhaps your 3.7 is integrated (should be easy to determine). Perhaps it's too old (EOL'd in 2020) for them to have a wheel for it and thus you're getting different stuff? We can add attrdict, but apparently that's only used on windows, so it'd be somewhat unfortunate to have to do that.

Actions #4

Updated by Dan Smith almost 2 years ago

Yeah, 3.8 and newer:

https://pypi.org/project/wxPython/#files

So I'd guess that's the deal. Unless you feel strongly, I'd say we should not add a should-be-win32-only requirement to the file for an EOL'd platform, but we could put a comment in there perhaps if you think it's important.

Actions #5

Updated by Martin Cooper almost 2 years ago

A wheel would have been nice - wxPython 4.2.0 took about an hour and a half to build on my MacBook Pro (which won't run anything newer than High Sierra). :-)

No, I don't feel strongly. I got it working after installing attrdict manually, and most people are probably using something newer than I am anyway.

Historically I've been doing most Chirp stuff on Linux, but I've been playing with a little mod that lets me run Chirp on my Mac with my radio connected to a remote Linux box. (I should probably submit that as a new feature.) So when I saw your note about the MacOS build being better, I thought I'd give it a whirl.

Actions #6

Updated by Dan Smith almost 2 years ago

  • Status changed from New to Closed

CHIRP supports rfc2217 URLs in the port box now, so you can run ser2net on a remote box and go to town. Works great for sniffing too, if you use hub4com on Windows to use a linux box for the serial port :)

Anyway, agree, I'll close this and we can refer to it for anyone else that hits it.

Actions #7

Updated by Martin Cooper almost 2 years ago

Oh, nice! Thanks for that. That's what I did locally. I've been using tcp_serial_redirect.py from the pyserial examples, rather than ser2net , but effectively the same thing.

Actions

Also available in: Atom PDF