我的存根 python3 程序找不到“pytz”模块:
[me@mybox]$ uname -a
Linux portal2 3.10.0-1160.53.1.el7.x86_64 #1 SMP Fri Jan 14 13:59:45 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
[me@mybox]$ cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
[me@mybox]$
[me@mybox]$ cat t2b.py
#!/usr/bin/env python3
import sys
import datetime
import time
import pytz
from datetime import datetime, timezone, tzinfo
[me@mybox]$ ./t2b.py
Traceback (most recent call last):
File "./t2b.py", line 6, in <module>
import pytz
ModuleNotFoundError: No module named 'pytz'
[me@mybox]$
我的 Centos 7 机器上的“yum”提供了‘pytz’模块,因此我安装了它(删除了很多行):
[root@mybox ~]# yum install pytz
Loaded plugins: fastestmirror, langpacks
Determining fastest mirrors
. . . . .
Resolving Dependencies
--> Running transaction check
---> Package pytz.noarch 0:2016.10-2.el7 will be installed
--> Finished Dependency Resolution
. . . . .
Dependencies Resolved
. . . . .
Installing:
pytz noarch 2016.10-2.el7 base 46 k
. . . . .
Installed:
pytz.noarch 0:2016.10-2.el7
Complete!
[root@mybox ~]#
但在此之后,我的存根程序以相同的方式失败了!就它而言,即使重新启动并重新登录后,仍然有“没有名为‘pytz’的模块”。
直到我通过“pip3”安装了“pytz”模块后,t2b.py 才找到它。
[root@portal2 ~]# pip3 install pytz
WARNING: Running pip install with root privileges is generally not a good idea. Try `pip3 install --user` instead.
Collecting pytz
Downloading https://files.pythonhosted.org/packages/d3/e3/d9f046b5d1c94a3aeab15f1f867aa414f8ee9d196fae6865f1d6a0ee1a0b/pytz-2021.3-py2.py3-none-any.whl (503kB)
100% |████████████████████████████████| 512kB 2.0MB/s
Installing collected packages: pytz
Successfully installed pytz-2021.3
[root@portal2 ~]#
[kurt@mybox ]$ ./t2b.py
[kurt@mybox ]$
我希望尽可能通过“yum”统一维护已安装的软件。我的问题是,为什么这对这个 python3 模块不起作用,以及/或者我必须采取哪些额外步骤才能使该过程正常运行?
答案1
没有什么比提出问题更能让显而易见的答案出现在你面前。看来我为 python2 安装了“pytz”:
[root@mybox ~]# yum list all | grep pytz
pytz.noarch 2016.10-2.el7 @base
python36-pytz.noarch 2017.2-3.el7 epel
rh-python38-python-pytz.noarch 2019.3-4.el7 centos-sclo-rh
[root@pmybox ~]# python3 -V
Python 3.6.8
[root@mybox ~]#
我的小 python3 程序找不到它,这并不奇怪。很可能我应该安装“python36-pytz”,我的程序就会找到它。