用Python3运行Python2程序?

编辑:下面更新,风景似乎发生了很大改变。
我有Ubuntu 20.04,并手动安装了Python 3.10。系统中已经有Python 2,如果我在命令行上简单地执行"python",就会得到Python 2。然而,我似乎只有一个特定于Python 3的pip版本。
我有一个想要运行的程序(chirp),它是用Python 2编写的。它抱怨缺少一个串行库:
$ ./chirpw
Traceback (most recent call last):
  File "./chirpw", line 24, in <module>
    from chirp.drivers import *
  File "/home/simon/chirp-daily-20220103/chirp/drivers/idrp.py", line 16, in <module>
    import serial
ImportError: No module named serial

然而,如果我尝试使用pip获取这个模块,最终会运行pip3并获取python3版本的该模块。
我应该如何将一个库添加到特定的python2中(并确保获取的是python2库)?
我想最好的方法可能是为这个特定的程序创建一个虚拟环境,但是对于已存在的程序,我也不知道如何做到这一点。
非常感谢任何指导。

编辑。我找到了这个页面:设置pipenv和虚拟环境,似乎我已经前进了。现在我似乎有一个真正的虚拟环境建立在/usr/bin/python(即python2.7)周围,并且使用它,pip -install串行工作。然而,在做完这些之后,它现在抱怨找不到gtk模块,并且尝试加载该模块失败,说没有这样的模块:

(venv) :~/chirp-daily-20220103$ python -m pip install gtk
DEPRECATION:[...]
ERROR: Could not find a version that satisfies the requirement gtk (from versions: none)
ERROR: No matching distribution found for gtk

接下来我尝试了这个的Flatpak版本,但是对我来说Flatpak根本不起作用。我会提出一个不同的问题,因为现在我们已经偏离了我最初问题的主题。
感谢所有尝试帮助我的人 :)

请查看此答案,以了解如何为未包含在Ubuntu 20.04中的Python 2.7软件包添加pip。https://stackoverflow.com/a/64297311/4576663 - Dave
2@Dave 是的,我从源码包进行了手动安装,并且"说明"只是简单地说 ./chirpw 应该可以工作,但实际上并没有。 - Toby Eggitt
是的,我仔细阅读了它们,然后深入研究了代码,发现它正在运行Python2本身。我认为问题出在缺少适用于Python2的pip,这可能会让你感到困扰。请参考我上面的评论中提供的链接,以获取安装帮助。 - Dave
然而,在这样做之后,它现在抱怨找不到 gtk 模块。是的,我在 Python 中进行了大量的 pygobject (gtk) 开发,并且在 venv 中访问 gtk 带来了自己的麻烦。帮助你在那个环境中使其正常运行超出了我的能力范围。 - Dave
2个回答

正如我们已经知道的那样,CHIRP也提供了Flatpak版本,这种安装方法更加简便
但是如果你仍然想要从源代码tar包进行安装,请使用以下命令:
sudo apt-get update
sudo apt-get install python2 python2-dev python-is-python2

cd ~/Downloads
# three below command will download old packages from 18.04 LTS repository
wget -c http://archive.ubuntu.com/ubuntu/pool/main/p/pyserial/python-serial_3.4-2_all.deb
wget -c http://archive.ubuntu.com/ubuntu/pool/universe/p/pygtk/python-gtk2_2.24.0-5.1ubuntu2_amd64.deb
sudo apt-get install ./python-serial_3.4-2_all.deb ./python-gtk2_2.24.0-5.1ubuntu2_amd64.deb

wget -c https://trac.chirp.danplanet.com/chirp_daily/LATEST/chirp-daily-20220103.tar.gz
tar -xf chirp-daily-20220103.tar.gz
cd chirp-daily-20220103/
sudo python2 setup.py install

然后从应用程序或Brisk菜单中启动CHIRP。

这对于任何使用flatpak的人来说肯定是很棒的。不幸的是,对于我来说,flatpak本身在最基本的层面上失败了,而且原因不明。 - Toby Eggitt

你可以通过在Python中执行python -m pip来运行pip。这将运行Python 2版本。例如,如果python切换到Python 2,并且您想要使用Python 2版本的pip来安装pyserial库,则可以执行以下操作:
$ python -m pip install pyserial

要理解这是在做什么,请参阅Python手册
-m module-name
       Searches sys.path for the named module and runs
       the corresponding  .py  file  as  a script.

这假设OP已经安装了Python2的pip,如果他没有安装,这将无法工作。 - Dave