OT yt-dlp and Python snag

MacFH - C E Macfarlane - News news at macfh.co.uk
Tue Mar 28 10:03:51 PDT 2023


On 28/03/2023 15:51, Jim web wrote:
>

Sorry to hear about your wife, commiserations to you both.

> In article <a545ac1d-311a-32cd-d5f1-775a26e066d7 at macfh.co.uk>, 
> MacFH - C E Macfarlane - News <news at macfh.co.uk> wrote:
>>
>> Might as well be sure, so what happens when you type:
>>     python --version
>>
>> If that comes up with 3.7 as desired, what do you get for:
>>     pip --help
> 
> It gives me  Python 2.7.17
> 
> However if I look in usr/lib/ I can see directories for Python
> 2.7, 3, 3.6, 3.7, and 3.8.

Different versions of Java, Perl, and Python can be a right royal PITA 
-  seemingly endless updates seem to require anything based on them that 
you are using needing programs to be rewritten and/or recompiled.

If you have a genuine need for different versions as opposed to having 
arrived with multiple versions merely by happenstance, one possible 
workaround is to have some means of determining the default version for 
a given shell instance.  For example, in Unbuntu 18, I get ...

# which python
/usr/bin/python
# ls -al /usr/bin/python
/usr/bin/python->python2.7

... and ...

# ls -al /usr/bin/python*

... is also quite instructive, but would be overkill to transcribe in 
its entirety here!

This gives the possibility of a given shell instance pointing that link 
to whichever version of python that it needs, either directly or via an 
environment variable, as it launches ...

# ln -s -f /usr/bin/python2.7 /usr/bin/python

... or ...

# export PYTH_VER=2.7
# ln -s -f /usr/bin/python${PYTH_VER} /usr/bin/python

... however, although I have seen it done this way, I DON'T RECOMMEND 
IT, because if you have two shells running simultaneously requiring 
different versions of python [the rest of this sentence is left as an 
exercise to the programmer]!

Better is to use a different alias within each shell ...

# python --version
Python 2.7.17
# alias python=/usr/bin/python3.6
# python --version
Python 3.6.9

If this works, fine, but if, say, more than one change to the 
environment is needed, perhaps because the PATH or LIB variables need to 
include the directories for a different versions of Python or some such, 
then use an environment variable in all the settings so that between 
different shells you have to change only the value of that:

# python --version
Python 3.6.9
# export PYTH_VER=2.7
# alias python=/usr/bin/python${PYTH_VER}
# python --version
Python 2.7.17

HTHs




More information about the get_iplayer mailing list