普通视图

Ubuntu 系统无法通过 pip 命令安装 Python 库问题解决

2025年9月22日 00:00

为了更好的执行 Python 脚本,杜老师习惯使用 Ubuntu 系统,不过在安装 Python 库时经常报错。收集了安装 Python 库的报错信息,并整理了解决办法,供需要的小伙伴们参考。

问题提示

这里以上一篇《使用 Python 脚本实现图片相似度匹配》文中代码为例,首次执行时的报错信息如下:

1
2
3
4
5
penn@penn-VMware-Virtual-Platform:~/图片$ python3 1.py
Traceback (most recent call last):
File "/home/penn/图片/1.py", line 4, in <module>
import imagehash
ModuleNotFoundError: No module named 'imagehash'

根据报错信息,提醒找不到 imagehash 模块,使用 pip3 命令安装需要的模块,结果又出现了错误信息。这个信息表明正在尝试在一个由操作系统管理的 Python 环境中直接安装 Python 相关的包,为了保证系统 Python 环境的稳定性和安全性而采取限制措施:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
penn@penn-VMware-Virtual-Platform:~/图片$ pip3 install imagehash
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.

If you wish to install a non-Debian packaged Python application,
it may be easiest to use pipx install xyz, which will manage a
virtual environment for you. Make sure you have pipx installed.

See /usr/share/doc/python3.13/README.venv for more information.

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.
hint: See PEP 668 for the detailed specification.

解决方法

解决的方法有很多,这里推荐使用虚拟环境。因为使用虚拟环境可以避免直接修改系统的 Python 环境,同时方便管理依赖。按照提示创建一个虚拟环境,使用 python3 -m venv myenv 来创建虚拟环境,使用 source myenv/bin/activate 激活虚拟环境:

1
2
penn@penn-VMware-Virtual-Platform:~/图片$ python3 -m venv myenv
penn@penn-VMware-Virtual-Platform:~/图片$ source myenv/bin/activate

在激活虚拟环境后,使用以下命令安装所需的包。安装完成后运行命令 deactivate,退出虚拟环境:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
(myenv) penn@penn-VMware-Virtual-Platform:~/图片$ pip install imagehash
Collecting imagehash
Downloading ImageHash-4.3.2-py2.py3-none-any.whl.metadata (8.4 kB)
Collecting PyWavelets (from imagehash)
Downloading pywavelets-1.8.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (9.0 kB)
Collecting numpy (from imagehash)
Downloading numpy-2.2.5-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (62 kB)
Collecting pillow (from imagehash)
Downloading pillow-11.2.1-cp313-cp313-manylinux_2_28_x86_64.whl.metadata (8.9 kB)
Collecting scipy (from imagehash)
Downloading scipy-1.15.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (61 kB)
Downloading ImageHash-4.3.2-py2.py3-none-any.whl (296 kB)
Downloading numpy-2.2.5-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (16.1 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 16.1/16.1 MB 21.3 MB/s eta 0:00:00
Downloading pillow-11.2.1-cp313-cp313-manylinux_2_28_x86_64.whl (4.6 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 4.6/4.6 MB 38.6 MB/s eta 0:00:00
Downloading pywavelets-1.8.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.5 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 4.5/4.5 MB 38.6 MB/s eta 0:00:00
Downloading scipy-1.15.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (37.3 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 37.3/37.3 MB 41.4 MB/s eta 0:00:00
Installing collected packages: pillow, numpy, scipy, PyWavelets, imagehash
Successfully installed PyWavelets-1.8.0 imagehash-4.3.2 numpy-2.2.5 pillow-11.2.1 scipy-1.15.2

Linux 系统监控利器 ctop 命令详解

2025年7月12日 00:00

在 Linux 系统,尤其是当我们在管理多个容器时,了解系统和容器的资源使用情况至关重要。今天,就给大家介绍一款强大的监控工具 ctop,本文详细介绍 ctop 的安装、使用、命令选项。

ctop 命令的简介

ctop 是一个类似 top 命令的界面工具,它专注于容器环境,能够实时监控 Docker/Podman 等容器运行时的性能指标,如 CPU、内存、网络、磁盘 I/O 等使用情况。

它以一种直观的方式展示各个容器的详细信息,让管理员可以迅速掌握系统整体健康状况,并且快速定位到可能存在性能瓶颈的容器。

与传统 top 命令相比,ctop 提供更丰富的容器相关数据和更便捷的交互方式。

它不仅能展示容器的基本资源使用率,还能深入到每个容器的进程级别,查看内部运行具体进程,这对于深入分析容器性能表现非常有帮助。

ctop 命令的安装

  1. Linux 系统的安装方法「以 Ubuntu 为例」
1
2
sudo wget https://github.com/bcicen/ctop/releases/download/v0.7.7/ctop-0.7.7-linux-amd64 -O /usr/local/bin/ctop
sudo chmod +x /usr/local/bin/ctop

注意:可以直接从 Github 下载最新版本的二进制文件进行安装,以上是具体的步骤「这里以 v0.7.7 版本为例」最后,用命令 ctop -v 验证是否安装成功,若可以正确显示版本号,说明安装成功。

  1. 通过 Docker 的方法安装
1
docker run --rm -it --name=ctop -v /var/run/docker.sock:/var/run/docker.sock quay.io/vektorlab/ctop:latest

注意:也可以使用 Docker 快速启动 ctop 容器来进行监控。

ctop 命令的使用

  1. 基本使用

在终端中输入 ctop 命令后回车,即可启动 ctop 程序进入主界面。在界面中,会显示出所有正在运行的容器及其资源使用情况的概览,包括容器名称、CPU 使用率、内存使用量及限制、网络收发速率、磁盘读写速率、进程数等信息。

可以通过方向键上下移动光标来选择不同容器,然后按下回车键可以查看到所选容器详细信息,如容器的创建时间、各资源的详细使用数据以及内部运行的进程列表等。

  1. 命令选项

命令选项列表如下:

选项描述
ctop -a只查看正在运行中容器,方便专注那些实际处于活动状态、可能对系统资源产生影响的容器。
ctop -f string查看包含指定字符串的容器,当系统中有大量容器时,利用此选项可快速过滤出我们关心的特定容器进行监控。
ctop -i反转默认颜色,如默认的颜色显示效果不佳,或需要与其它界面风格保持一致,可使用该选项来改变界面的颜色显示。
ctop -r反向容器排列顺序,默认情况下存活的容器在前,使用此选项可将其顺序反转,以便按照不同顺序查看容器。
ctop -s string按照指定字段排序,如执行 ctop -s net 可以按照网络使用率对容器进行排序,从而快速找到网络流量较高容器。

交互操作

交互操作列表如下:

操作描述
h打开帮助,在使用过程中如果忘记了某些快捷键的功能或者想了解更多操作方法,可以随时按下 h 键查看帮助信息。
s打开排序,通过此快捷键可以方便地切换不同的排序字段,无需重新输入命令选项。
q退出打开的对话框,当查看完帮助信息或排序设置后,按下 q 键可以退出相应的对话框,返回到主界面。
a只显示正在运行的容器,与 ctop -a 命令效果一致,但在已经启动了 ctop 程序的情况下,使用快捷键可更快速地切换显示模式。
r反转排序,正在运行容器放在末尾,方便在不同的排序需求之间快速切换。
f输入指定字符串过滤出想要查看容器,与 ctop -f string 命令类似,无需重新输入命令,直接在当前界面中进行过滤操作。
j用于向下移动光标,方便在容器列表中快速定位到不同的容器。
k用于向上移动光标,方便在容器列表中快速定位到不同的容器。
Enter查看指定容器详细指标,当光标定位到某个容器,按下回车键即可进入该容器详细信息界面,查看更全面的资源使用以及进程信息。
❌