Python ImportError:没有名为 pygments 的模块

use*_*974 6 python import pygments

我运行了以下代码

# Allows the use of display() for displaying 
from IPython.display import display DataFrames
Run Code Online (Sandbox Code Playgroud)

它显示以下错误

 File "/usr/lib64/python2.7/site-packages/IPython/utils/colorable.py", line 13, in <module>
    import pygments
ImportError: No module named pygments
Run Code Online (Sandbox Code Playgroud)

所以我尝试安装pygments

pip install pygments
Run Code Online (Sandbox Code Playgroud)

它说:

Requirement already satisfied: pygments in /home/rico/downloads/hgvs-0.1.2/Pygments-2.1.3-py2.7.egg (2.1.3)
Run Code Online (Sandbox Code Playgroud)

您知道如何解决这个问题吗?谢谢。

Rtm*_*tmY 4

看来您在全局范围内安装了Pygments模块,而不是安装在virtualenv内。

什么是虚拟环境?

虚拟环境是保持应用程序或服务的依赖关系内联的一种方法。
virtualenv是一个用于创建隔离的 Python 环境的工具,您现在可以在其中安装特定于该环境的依赖项,而不是全局安装它们。

虚拟环境有助于在开发和部署过程中创建一致性,这反过来又有助于构建更好的应用程序或服务。

安装虚拟环境

首先,安装虚拟环境:

pip install virtualenv
Run Code Online (Sandbox Code Playgroud)

要创建 virtualenv,请首先运行以下命令:

$ virtualenv -p python3 {name-of-virtual-env} 
Run Code Online (Sandbox Code Playgroud)

让我们称之为my_venv,因此运行以下命令:

$ virtualenv -p python3 my_venv 
Run Code Online (Sandbox Code Playgroud)

创建虚拟环境后,运行以下命令将其激活:

$ source my_venv/bin/activate 
Run Code Online (Sandbox Code Playgroud)

运行 activate 命令后,您应该在终端的开头看到虚拟环境的名称,如下所示:

(my_venv) $ source my_venv/bin/activate 
Run Code Online (Sandbox Code Playgroud)

本地安装模块

导航到my_venv文件夹内并安装Pygments模块:

cd my_venv && pip3 install pygments
Run Code Online (Sandbox Code Playgroud)

您应该看到它已本地安装在文件夹lib/python3.8/site-packagesmy_venv

`-- my_venv
    |-- bin
    |-- lib
    |   `-- python3.8
    |       `-- site-packages
    |           |-- chardet
    |           |-- chardet-3.0.4.dist-info
    |           |-- idna
    |           |-- pip
    |           |-- pip-21.0.1.dist-info
    |           |-- pip-21.0.1.virtualenv
    |           |-- pkg_resources
    |           |-- pygments #<--------- Here
    |           |-- pygments_promql            
    |           |-- pygments_promql-0.0.5.dist-info
    |           |-- regex
    `-- pyvenv.cfg
Run Code Online (Sandbox Code Playgroud)

停用虚拟环境

运行完应用程序或服务后,您可以通过运行 deactivate 命令关闭 virtualenv:

(my_venv) $ deactivate
Run Code Online (Sandbox Code Playgroud)

在这里阅读更多内容。