This worked for me:
*$ sudo apt install python3-paho-mqtt*
While you're there might as well install* mosquitto-clients* so you can
test if it's working.

On Mon, Jul 29, 2024 at 10:56 AM Marty b <[email protected]> wrote:

> Hello everyone,
>
> Thank you all for the replies!
>
> I tried installing the module using both methods (apt & pip).  Both gave
> errors. I tried a bunch of other things and couldn't get it to work.  So, I
> started working on some other things on the Pi and noticed that the
> language was set for EN-GB-UTF8.  I change this to EN-US-UTF8 and tried
> install the module again (via apt) and was successful.  This make
> absolutely no sense, but that was the last thing that changed.
>
> I did try activating the virtual environment and could not make it work.
>
> I am new to the virtual environment of python - and very willing to
> learn/understand it.
>
> I will further try to figure it out since I want to use the mqtt plug-in (
> https://github.com/weewx/weewx/wiki/mqtt) and it requires a package that
> does not appear to be installable via apt (paho-mqtt).
>
>
>
> On Monday, July 29, 2024 at 8:04:23 AM UTC-7 John Kline wrote:
>
>> I looks like he is using an extension of mine (weewx-loopdata) that
>> requires sorted containers since weewx-loopdata v3.0.  The README states
>> that sortedcontainers must be installed and the weewx 5 install
>> instructions, step 1, states:
>>
>>    1.
>>
>>
>>    Activate the virtual environment (actual syntax varies by type of
>>    WeeWX install):/home/weewx/weewx-venv/bin/activate
>>
>>
>> I’m asssuming weewx 5.  If it is weewx 4, follow the WeeWX instructions
>> for weewx 4 installs.
>>
>> On Jul 29, 2024, at 9:51 AM, [email protected] <[email protected]> wrote:
>>
>> 
>>
>> This is ‘due’ to pep 668 and a ‘push’ for users to use virtual
>> environments. It is warning the person installing the python module,
>> sortedcontainers, that they  are installing into an ‘global’
>> (externally-managed-environment) location. There are a few ways to solve
>> this.
>> Create a virtual environment, activate it, and install the module. Since
>> WeeWX was a package install, this is not reasonable.
>> As the message states, override the warning using the
>> ‘--break-system-packages’ option. It would look something like this, ‘pip3
>> install sortedcontainers --break-system-packages’.
>> If it exists, install the OS package. It would be something like this,
>> ‘sudo apt install python3-sortedcontainers’
>>
>> Additional information:
>> http://rptl.io/venv
>> https://peps.python.org/pep-0668/
>>
>> https://packaging.python.org/en/latest/specifications/externally-managed-environments/#externally-managed-environments
>>
>> rich
>> On Monday 29 July 2024 at 10:10:36 UTC-4 Tom Keffer wrote:
>>
>>> The user is doing a package install (the clue is paths such as
>>> '/usr/share/weewx/...'
>>>
>>> My thinking is that you are using an extension that needs
>>> 'sortedcontainers'.
>>>
>>> Please post your configuration file, /etc/weewx/weewx.conf. Make sure
>>> you look it over and remove any passwords or other sensitive information
>>> before posting.
>>>
>>>
>>>
>>> On Sun, Jul 28, 2024 at 11:41 PM Marty b <[email protected]> wrote:
>>>
>>>> Should point out that I did try installing the missing module, but got
>>>> the following error:
>>>>
>>>>  $ pip3 install sortedcontainers
>>>> error: externally-managed-environment
>>>>
>>>> × This environment is externally managed
>>>> ╰─> To install Python packages system-wide, try apt install
>>>>     python3-xyz, where xyz is the package you are trying to
>>>>     install.
>>>>
>>>>     If you wish to install a non-Debian-packaged Python package,
>>>>     create a virtual environment using python3 -m venv path/to/venv.
>>>>     Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make
>>>>     sure you have python3-full installed.
>>>>
>>>>     For more information visit http://rptl.io/venv
>>>>
>>>> note: If you believe this is a mistake, please contact your Python
>>>> installation or OS distribution provider. You can override this, at the
>>>> risk of breaking your Python installation or OS, by passing
>>>> --break-system-packages.
>>>>
>>>> On Sunday, July 28, 2024 at 11:14:11 PM UTC-7 Marty b wrote:
>>>>
>>>>> Hello,
>>>>>
>>>>> Just built a new SD card with Raspbian bookworm 64 bit and WeeWx.
>>>>> When starting weewx I get an error "No module named 'sortedcontainers'.
>>>>> Please let me know how to resolve this.
>>>>>
>>>>> Thanks!
>>>>>
>>>>> Jul 28 23:12:10 WeeWx2024 weewxd[2632]: INFO weewx.engine: StdConvert
>>>>> target unit is 0x1
>>>>> Jul 28 23:12:10 WeeWx2024 weewxd[2632]: INFO weewx.wxservices:
>>>>> StdWXCalculate will use data binding wx_binding
>>>>> Jul 28 23:12:10 WeeWx2024 weewxd[2632]: INFO weewx.engine: Archive
>>>>> will use data binding wx_binding
>>>>> Jul 28 23:12:10 WeeWx2024 weewxd[2632]: INFO weewx.engine: Record
>>>>> generation will be attempted in 'hardware'
>>>>> Jul 28 23:12:10 WeeWx2024 weewxd[2632]: INFO weewx.engine: Using
>>>>> archive interval of 300 seconds (specified by hardware)
>>>>> Jul 28 23:12:10 WeeWx2024 weewxd[2632]: INFO weewx.restx:
>>>>> StationRegistry: Registration not requested.
>>>>> Jul 28 23:12:10 WeeWx2024 weewxd[2632]: INFO weewx.restx:
>>>>> Wunderground: Posting not enabled.
>>>>> Jul 28 23:12:10 WeeWx2024 weewxd[2632]: INFO weewx.restx: PWSweather:
>>>>> Posting not enabled.
>>>>> Jul 28 23:12:10 WeeWx2024 weewxd[2632]: INFO weewx.restx: CWOP:
>>>>> Posting not enabled.
>>>>> Jul 28 23:12:10 WeeWx2024 weewxd[2632]: INFO weewx.restx: WOW: Posting
>>>>> not enabled.
>>>>> Jul 28 23:12:10 WeeWx2024 weewxd[2632]: INFO weewx.restx: AWEKAS:
>>>>> Posting not enabled.
>>>>> Jul 28 23:12:10 WeeWx2024 weewxd[2632]: INFO weewx.engine: 'pyephem'
>>>>> detected, extended almanac data is available
>>>>> Jul 28 23:12:10 WeeWx2024 weewxd[2632]: CRITICAL __main__: Caught
>>>>> unrecoverable exception:
>>>>> Jul 28 23:12:10 WeeWx2024 weewxd[2632]: CRITICAL __main__:     ****
>>>>>  No module named 'sortedcontainers'
>>>>> Jul 28 23:12:10 WeeWx2024 weewxd[2632]: CRITICAL __main__:     ****
>>>>>  Traceback (most recent call last):
>>>>> Jul 28 23:12:10 WeeWx2024 weewxd[2632]: CRITICAL __main__:     ****
>>>>>  File "/usr/share/weewx/weewxd.py", line 121, in main
>>>>> Jul 28 23:12:10 WeeWx2024 weewxd[2632]: CRITICAL __main__:     ****
>>>>>    engine = weewx.engine.StdEngine(config_dict)
>>>>> Jul 28 23:12:10 WeeWx2024 weewxd[2632]: CRITICAL __main__:     ****
>>>>>             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>>>>> Jul 28 23:12:10 WeeWx2024 weewxd[2632]: CRITICAL __main__:     ****
>>>>>  File "/usr/share/weewx/weewx/engine.py", line 89, in __init__
>>>>> Jul 28 23:12:10 WeeWx2024 weewxd[2632]: CRITICAL __main__:     ****
>>>>>    self.loadServices(config_dict)
>>>>> Jul 28 23:12:10 WeeWx2024 weewxd[2632]: CRITICAL __main__:     ****
>>>>>  File "/usr/share/weewx/weewx/engine.py", line 157, in loadServices
>>>>> Jul 28 23:12:10 WeeWx2024 weewxd[2632]: CRITICAL __main__:     ****
>>>>>    obj = weeutil.weeutil.get_object(svc)(self, config_dict)
>>>>> Jul 28 23:12:10 WeeWx2024 weewxd[2632]: CRITICAL __main__:     ****
>>>>>          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>>>>> Jul 28 23:12:10 WeeWx2024 weewxd[2632]: CRITICAL __main__:     ****
>>>>>  File "/usr/share/weewx/weeutil/weeutil.py", line 1404, in get_object
>>>>> Jul 28 23:12:10 WeeWx2024 weewxd[2632]: CRITICAL __main__:     ****
>>>>>    module = importlib.import_module(module_name)
>>>>> Jul 28 23:12:10 WeeWx2024 weewxd[2632]: CRITICAL __main__:     ****
>>>>>             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>>>>> Jul 28 23:12:10 WeeWx2024 weewxd[2632]: CRITICAL __main__:     ****
>>>>>  File "/usr/lib/python3.11/importlib/__init__.py", line 126, in
>>>>> import_module
>>>>> Jul 28 23:12:10 WeeWx2024 weewxd[2632]: CRITICAL __main__:     ****
>>>>>    return _bootstrap._gcd_import(name[level:], package, level)
>>>>> Jul 28 23:12:10 WeeWx2024 weewxd[2632]: CRITICAL __main__:     ****
>>>>>           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>>>>> Jul 28 23:12:10 WeeWx2024 weewxd[2632]: CRITICAL __main__:     ****
>>>>>  File "<frozen importlib._bootstrap>", line 1206, in _gcd_import
>>>>> Jul 28 23:12:10 WeeWx2024 weewxd[2632]: CRITICAL __main__:     ****
>>>>>  File "<frozen importlib._bootstrap>", line 1178, in _find_and_load
>>>>> Jul 28 23:12:10 WeeWx2024 weewxd[2632]: CRITICAL __main__:     ****
>>>>>  File "<frozen importlib._bootstrap>", line 1149, in 
>>>>> _find_and_load_unlocked
>>>>> Jul 28 23:12:10 WeeWx2024 weewxd[2632]: CRITICAL __main__:     ****
>>>>>  File "<frozen importlib._bootstrap>", line 690, in _load_unlocked
>>>>> Jul 28 23:12:10 WeeWx2024 weewxd[2632]: Traceback (most recent call
>>>>> last):
>>>>> Jul 28 23:12:10 WeeWx2024 weewxd[2632]:   File
>>>>> "/usr/share/weewx/weewxd.py", line 226, in <module>
>>>>> Jul 28 23:12:10 WeeWx2024 weewxd[2632]: CRITICAL __main__:     ****
>>>>>  File "<frozen importlib._bootstrap_external>", line 940, in exec_module
>>>>> Jul 28 23:12:10 WeeWx2024 weewxd[2632]:     main()
>>>>> Jul 28 23:12:10 WeeWx2024 weewxd[2632]:   File
>>>>> "/usr/share/weewx/weewxd.py", line 121, in main
>>>>> Jul 28 23:12:10 WeeWx2024 weewxd[2632]: CRITICAL __main__:     ****
>>>>>  File "<frozen importlib._bootstrap>", line 241, in
>>>>> _call_with_frames_removed
>>>>> Jul 28 23:12:10 WeeWx2024 weewxd[2632]:     engine =
>>>>> weewx.engine.StdEngine(config_dict)
>>>>> Jul 28 23:12:10 WeeWx2024 weewxd[2632]:
>>>>>  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>>>>> Jul 28 23:12:10 WeeWx2024 weewxd[2632]:   File
>>>>> "/usr/share/weewx/weewx/engine.py", line 89, in __init__
>>>>> Jul 28 23:12:10 WeeWx2024 weewxd[2632]: CRITICAL __main__:     ****
>>>>>  File "/etc/weewx/bin/user/loopdata.py", line 30, in <module>
>>>>> Jul 28 23:12:10 WeeWx2024 weewxd[2632]:
>>>>> self.loadServices(config_dict)
>>>>> Jul 28 23:12:10 WeeWx2024 weewxd[2632]:   File
>>>>> "/usr/share/weewx/weewx/engine.py", line 157, in loadServices
>>>>> Jul 28 23:12:10 WeeWx2024 weewxd[2632]:     obj =
>>>>> weeutil.weeutil.get_object(svc)(self, config_dict)
>>>>> Jul 28 23:12:10 WeeWx2024 weewxd[2632]: CRITICAL __main__:     ****
>>>>>    from sortedcontainers import SortedDict
>>>>> Jul 28 23:12:10 WeeWx2024 weewxd[2632]:
>>>>> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>>>>> Jul 28 23:12:10 WeeWx2024 weewxd[2632]:   File
>>>>> "/usr/share/weewx/weeutil/weeutil.py", line 1404, in get_object
>>>>> Jul 28 23:12:10 WeeWx2024 weewxd[2632]: CRITICAL __main__:     ****
>>>>>  ModuleNotFoundError: No module named 'sortedcontainers'
>>>>> Jul 28 23:12:10 WeeWx2024 weewxd[2632]: CRITICAL __main__:     ****
>>>>>  Exiting.
>>>>> Jul 28 23:12:10 WeeWx2024 weewxd[2632]:     module =
>>>>> importlib.import_module(module_name)
>>>>> Jul 28 23:12:10 WeeWx2024 weewxd[2632]:
>>>>>  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>>>>> Jul 28 23:12:10 WeeWx2024 weewxd[2632]:   File
>>>>> "/usr/lib/python3.11/importlib/__init__.py", line 126, in import_module
>>>>> Jul 28 23:12:10 WeeWx2024 weewxd[2632]:     return
>>>>> _bootstrap._gcd_import(name[level:], package, level)
>>>>>
>>>> --
>>>> You received this message because you are subscribed to the Google
>>>> Groups "weewx-user" group.
>>>> To unsubscribe from this group and stop receiving emails from it, send
>>>> an email to [email protected].
>>>> To view this discussion on the web visit
>>>> https://groups.google.com/d/msgid/weewx-user/3cb59936-0567-4c41-a53a-62e752879775n%40googlegroups.com
>>>> <https://groups.google.com/d/msgid/weewx-user/3cb59936-0567-4c41-a53a-62e752879775n%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>> .
>>>>
>>> --
>> You received this message because you are subscribed to the Google Groups
>> "weewx-user" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to [email protected].
>>
>> To view this discussion on the web visit
>> https://groups.google.com/d/msgid/weewx-user/d8a08cdb-d5b1-4db2-9f9f-54855503f901n%40googlegroups.com
>> <https://groups.google.com/d/msgid/weewx-user/d8a08cdb-d5b1-4db2-9f9f-54855503f901n%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>>
>> --
> You received this message because you are subscribed to the Google Groups
> "weewx-user" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/weewx-user/b7dc5644-6ab1-4e74-9f8f-60580487ca13n%40googlegroups.com
> <https://groups.google.com/d/msgid/weewx-user/b7dc5644-6ab1-4e74-9f8f-60580487ca13n%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>

-- 
You received this message because you are subscribed to the Google Groups 
"weewx-user" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/weewx-user/CA%2Bz%2BvD71nwpN7B2h47dcOsr4OCXdHzkEWHiwEHHGTgpRrkZ4vw%40mail.gmail.com.

Reply via email to