If pip bothers you, don't use pip.  Use the packaged versions.  That's why 
they're there...

Long TL;DR; follows.....

Some thoughts on risk mitigation from a too many decades to admit retired 
sysadmin and custom linux os developer at $work....

1. os upgrades can and do break things on every os I've ever seen

   - 'you' control whether your os updates things
   - you also control 'which' things you will permit to be updatable
   - you can pin packages to 'not' update if you are so inclined
         - for debian-like (apt-mark)
         - for redhat-like (there are several ways to do this)
      
2. if you understand your risks, you can choose to simply not update your os

   - yes I know others will differ in opinion here, everybody has a 
   different risk decision to make
   - FWIW -  I never update 'anything' on my home LAN-only weewx system. 
    Never.
      - why ? Because I only upload outbound to Internet sites
      - and my gateway blocks all incoming traffic from Internet
   

   - just mentioning it above, although others can/will differ in opinion, 
   so I don't want to start a flame war on that one
      - ultimately, the os upgrade setup is the admin's choice
   
3. for me, I run pip for a couple reasons

   - packaged installs tend, for me, to be less stable/predictable in what 
   they will upgrade, sometimes os by os
      - packaging is hard.  Real hard.  And real painful for the developer. 
       (many thanks to matthew there)
   

   - for pip I know exactly what it'll do, and it has been 100% rock-solid 
   for me in literally dozens of installs

4. creating your venv slightly differently to select a specific python 
version can help a little

   - "python3 -m venv" expects the os default python version to never change
   - but "python3.11 -m venv" will use a specific python version available 
   on the system


   - so in the latter case, unless the python3.11 packages get deleted, 
   your venv will be fine
   - and if an os upgrade (bookworm=>trixie) 'did' delete that version, 
   just add it back in ('apt install python3.11')

5. reinstalling via pip is not 'that' painful really if you do a 'little' 
up front work even if you've added a lot of python libraries

   - on a working system save your venv python setup to a file
      - activate your venv
         - source ~/weewx-venv/bin/activate
      - save a listing of the libs and their versions to a file in a 
      persistent location (weew-data)
         - pip3 freeze > ~/weewx-data/requirements.txt
      

   - if you ever have to rebuild your venv from scratch
      - create a new venv
         - python3 -m venv weewx-venv
      - activate your new venv
         - source weewx-data/bin/activate
      - use the saved requirements.txt file to reinstall your libs
         - pip3 install -r ~/weewx-data/requirements.txt
      - and you'll have a new complete weewx-venv with all the libs you had 
      before in the old version
   
Personally - I kinda like item (5) above a lot.  

   - stash a requirements.txt file that itemizes your setup
   - use it if you ever 'do' need to recreate a previously working setup
   - all without needing to remember what you added months or years ago
   - quick test here in debian took under 20 seconds end-to-end to rebuild. 
    Really.

On Tuesday, October 21, 2025 at 7:29:57 AM UTC-7 Tom Keffer wrote:

> Yes, pip installs can be vulnerable to operating system upgrades. Then 
> again, so can package installs --- see the recent thread on the 
> disappearance of the function locale.format() when the system Python was 
> upgraded to V3.12.
>
> Still, the pip install has advantages. Because of the clean separation of 
> code from user state, the old virtual environment can always be deleted, 
> then recreated by following the pip install instructions.
>
> Alternatively, one could create the virtual environment using the --copies 
> flag:
>
> python -m venv --copies weewx-venv
>
>
> This will install copies of the Python interpreter instead of symlinking. 
> Of course, expect it to take up a lot more space.
>
> Still another alternative is to use Docker.
>
> -tk
>
>
> On Tue, Oct 21, 2025 at 7:01 AM [email protected] <[email protected]> 
> wrote:
>
>> I'd just like to chime in here.
>> I certainly do not like the pip install.
>> It works fine for me.
>> Until an OS upgrade. Then it seems the choices are either rebuild the 
>> machine and start from scratch so to speak.
>> Fiddle with finding every instance of the path to the missing python and 
>> edit it.
>> Or hard link.
>> Or symlink.
>>
>> Or...
>>
>> Yeah, I know. Don't upgrade. Not the best answer to me.
>> I may revert to a deb install when I rebuild the weewx machine to solve 
>> these errors after the upgrade to Trixie.
>> Shoot, for me, in the venv there isn't a pip and it was not possible to 
>> reinstall pip for reasons known only to the gods.
>> Luckily, I run on proxmox and rolled back to my previous state.
>>
>>
>> My 10 cents
>>
>> On Monday, October 20, 2025 at 10:41:39 PM UTC-4 Tom Keffer wrote:
>>
>>> It is customary when using a venv interactively, but it's not actually 
>>> necessary. As an alternative, you can use an absolute path to the Python 
>>> interpreter inside the venv. That's enough for it to find its packages.
>>>
>>> On Mon, Oct 20, 2025 at 4:37 PM vince <[email protected]> wrote:
>>>
>>>> Yes.
>>>>
>>>> On Monday, October 20, 2025 at 3:33:33 PM UTC-7 Jobu wrote:
>>>>
>>>>> A bit of a tangent, but is it customary to run `activate` from a venv 
>>>>> before using it in systematic use cases like this?
>>>>>
>>>>> On Monday, October 20, 2025 at 4:22:34 PM UTC-5 vince wrote:
>>>>>
>>>>>> Which 'what' is accurate ?
>>>>>>
>>>>>> It sounds like your os has a different system-level python version 
>>>>>> than your pre-existing venv, perhaps from an os upgrade.  It's happened 
>>>>>> to 
>>>>>> others.
>>>>>>
>>>>>> See a similar thread at 
>>>>>> https://groups.google.com/g/weewx-user/c/04WSgv2Ze7g/m/9nlZklaPAgAJ 
>>>>>> - there are multiple ways to work this one, but be sure to make certain 
>>>>>> your systemd service file (or equivalent) matches what is in the venv.  
>>>>>> I 
>>>>>> don't know kali well enough to know how it handles startup files.
>>>>>>
>>>>>> Look at your weewx-venv/bin symlinks and you will likely see that 
>>>>>> python3 resolves to whatever your os python version is, and 'not' a 
>>>>>> specific version that was there when you set up the venv.  You might be 
>>>>>> able to just fix the symlink therein to point to python3.12 (to match 
>>>>>> the 
>>>>>> venv) if you have multiple python versions on the os.  If that doesn't 
>>>>>> work 
>>>>>> you'll need to reinstall your venv contents and fix up your startup file 
>>>>>> to 
>>>>>> match.
>>>>>>
>>>>>> This is not a weewx bug.  It is a (massive) pain in the neck 
>>>>>> non-feature from the python team.
>>>>>>
>>>>>> On Monday, October 20, 2025 at 1:55:15 PM UTC-7 Dan Hinckley wrote:
>>>>>>
>>>>>>> Starting weewx throws this error: 
>>>>>>>
>>>>>>> Oct 20 16:50:47 kali-linux-2024-2 systemd[1]: Started weewx.service 
>>>>>>> - WeeWX weather system. 
>>>>>>> Oct 20 16:50:48 kali-linux-2024-2 python3[2820]: 
>>>>>>> /home/house/weewx-venv/bin/python3: can't open file 
>>>>>>> '/home/house/weewx-venv/lib/python3.12/site-packages/weewxd.py': [Errno 
>>>>>>> 2] 
>>>>>>> No such file or directory 
>>>>>>>
>>>>>>> Which is accurate. That venv has python 3.13 
>>>>>>>
>>>>>>> How do I cure this?
>>>>>>
>>>>>> -- 
>>>> 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 visit 
>>>> https://groups.google.com/d/msgid/weewx-user/2d424f13-0657-4366-bb69-167822a8f926n%40googlegroups.com
>>>>  
>>>> <https://groups.google.com/d/msgid/weewx-user/2d424f13-0657-4366-bb69-167822a8f926n%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 visit 
>> https://groups.google.com/d/msgid/weewx-user/31f348fa-d630-4caf-99d1-877ac006b2a3n%40googlegroups.com
>>  
>> <https://groups.google.com/d/msgid/weewx-user/31f348fa-d630-4caf-99d1-877ac006b2a3n%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 visit 
https://groups.google.com/d/msgid/weewx-user/a2fbba17-5935-443c-a47e-19136b3b9375n%40googlegroups.com.

Reply via email to