ImportError:尝试运行 Pythontex 时没有名为 pygments.styles 的模块

Posted

技术标签:

【中文标题】ImportError:尝试运行 Pythontex 时没有名为 pygments.styles 的模块【英文标题】:ImportError: No module named pygments.styles when attempting to run Pythontex 【发布时间】:2021-01-03 01:50:58 【问题描述】:

当我尝试通过命令行运行 pythontex((base) Zachs-MacBook-Pro:mat_300 zachmaurus$ pythontex pythontex.tex) 时,会发生以下情况:

Traceback (most recent call last):
  File "/Library/TeX/texbin/pythontex", line 50, in <module>
    import pythontex2 as pythontex
  File "/usr/local/texlive/2019/texmf-dist/scripts/pythontex/pythontex2.py", line 61, in <module>
    from pygments.styles import get_all_styles
ImportError: No module named pygments.styles

我该如何解决这个问题?我已经使用pip install 下载了 pygments,但是无论出于何种原因,当我尝试运行脚本时,找不到模块 pygments.style。

【问题讨论】:

你能发布你的python版本吗?我认为你的 python 包安装在与你使用的不同的 python 版本上。 你是如何安装 Pygments 的,这是使用 Pip 吗?如果是这样,您能否提供pip list 的结果 【参考方案1】:

通过在 MacOS 终端中使用 export PATH=$PATH:/usr/zachmaurus/Downloads/pythontex/pythontex_install.py 将 pythontex_install.py 添加到我的 PATH 解决了这个问题。为确保已将 pythontex_install.py 添加到 PATH 环境中,请运行 echo $PATH,它应显示为变量之一。将 pythontex_install.py 添加到 PATH 后,我现在在运行 pythontex pythontex.tex 编译文档时得到以下结果:

This is PythonTeX 0.16

--------------------------------------------------
PythonTeX:  pythontex - 0 error(s), 0 warning(s) 

【讨论】:

【参考方案2】:

我通过显式调用我想要的解释器解决了这个问题,然后我编译了文档。

pdflatex -interaction=nonstopmode document.tex
python3 <path_to_pythontex.py>/pythontex.py document.tex
pdflatex -interaction=nonstopmode document.tex

或者你想要的任何python解释器:

pdflatex -interaction=nonstopmode document.tex
<path_to_python>/python3 <path_to_pythontex.py>/pythontex.py document.tex
pdflatex -interaction=nonstopmode document.tex

当然 Pygments 模块应该由这个解释器安装。这对我在 macOS 上非常有用。

【讨论】:

【参考方案3】:

当我尝试在我的 macbook(macOS Catalina 10.15 上)上使用 pythontex 时遇到了同样的问题。

我在下面的建议必须(如果使用)谨慎使用:

我尝试了很多解决方案,而真正对我有用的是:

我确保我的机器上安装了 pygments(我在终端上运行了“pip install pygments”)

然后我更改了文件pythontex、pythontex2(因为问题似乎来自那里)和pythontex3的第一行

这些文件(如果您像我一样使用 macOS Catalina 10.15)应该在 /usr/local/texlive/2021/texmf-dist/scripts/pythontex (如果您安装了 TexLive2021)-> 当您尝试编译您的 tex 文件时,您应该能够检索此路径...

然后在 3 个文件 pythontex、pythontex2 和 pythontex3 中的第一行替换为 #!/usr/bin/python3(以确保使用 python3 而不是 macOS 默认使用的 python 2.7):

我还在 pythontex3 中添加了这一行(见下面的截图):

sys.path.append('/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/') 确保python找到了模块pygments (因为我在我的机器上安装了python3.9,并且文件夹“pygments”及其子文件夹“styles”存在于文件夹“site-packages”中)

pythontex3 file

所以现在一切都正常了,我可以使用 pythontex =)

【讨论】:

以上是关于ImportError:尝试运行 Pythontex 时没有名为 pygments.styles 的模块的主要内容,如果未能解决你的问题,请参考以下文章

ImportError:运行火花时没有名为请求的模块

ImportError:没有名为“appdirs”的模块

ImportError:无法导入名称“PandasError”

pyodbc - ImportError:DLL 加载失败:

ImportError,在谷歌应用引擎中使用 pytz

运行包抛出 ImportError: No module named image