0

我已经为此苦苦挣扎了一段时间,我想我缩小了以下问题的原因:

通过 Anaconda 在 Spyder 中使用虚拟 python 3.8 环境,我能够绘制出我想要的一切;使用 palatino 乳胶字体的广泛而复杂的情节。但是,只要我在其中输入最少量的 gmsh 代码,就会弹出诸如“找不到乳胶”或“缺少字体度量文件”或“找不到 dvipng”之类的错误。我只能猜测 gmsh 将目录弄乱了,但 sys.path 显示所有相关文件夹(对于可执行文件 Miktex、dvipng)仍然存在。我对python相当陌生,所以我希望你们注意到我犯的一些非常愚蠢或基本的错误。提前致谢!

对我来说导致问题的最小示例:

import gmsh, numpy as np
import matplotlib.pyplot as plt
from matplotlib import rc
#rc('font',**{'family':'serif','serif':['Palatino']})
rc('text', usetex=True) # usetex=False resolves the issue, but I NEED this font haha

if False: # If set to True, the errors will occur.
    gmsh.initialize()
    gmsh.finalize()

Y = np.random.random(15) + 2*np.random.rand(1)
plt.plot(Y)
plt.title(r'$\Sigma_1^2 \mathrm{somehillsboye}$')

PS 虚拟环境是这样设置的:

为避免因python版本不同造成依赖冲突,本项目使用python 3.8。使用以下步骤使用 Anaconda 激活它:

  1. 启动 Anaconda Navigator 应用程序。
  2. 在此应用程序中,启动 CMD.exe 提示符。
  3. 在此提示中,为 python 3.8 和必要的模块分别执行以下行(在每个“安装或创建”后按“y”): conda create --name py38 python=3.8

conda 激活 py38

conda install --name py38 spyder -c conda-forge

conda config --add 通道 conda-forge

conda install libspatialindex==1.9.3 rtree==0.9.7

conda install numpy==1.21.2 scipy==1.6.2 matplotlib==3.4.2

康达安装 gmsh python-gmsh

conda install -c conda-forge/label/cf202003 miktex

康达安装ghostscript

蜘蛛

4

1 回答 1

0

我解决了!

这个问题似乎比我想象的更普遍,我在这里找到了答案: https ://gitlab.onelab.info/gmsh/gmsh/-/issues/1142

事实证明 gmsh.initialize() 与 PATH 和 PYTHONPATH 环境混淆,可能会掩盖可执行文件的目录(例如 miktex)。为防止出现此问题,只需更改:

gmsh.initialize()

gmsh.initialize(['-noenv'])
于 2021-09-10T13:27:44.823 回答