我无法让matplotlib.pyplot
在GMS3.4下工作。它不断使DM崩溃,并显示以下错误消息
运行此代码时(取自DM帮助文档):
import sys
sys.argv.extend(['-a', ' '])
import numpy as np
import matplotlib.pyplot as plt
t = np.arange( 0.0, 3.0, 0.01)
s1 = np.sin(2 * np.pi * t)
plt.plot(t, s1)
plt.show()
重新安装/修复GMS似乎无法解决问题。我是Python新手,所以我可能错过了一些明显的东西
尽管miile7提供的修复程序发挥了作用,但我还是想提出一个替代解决方案:
正如miile7很好地指出的,全局设置环境变量可能会干扰其他软件,应该避免。要让DM找到Qt平台,可以简单地
复制文件夹
ProgramData\Miniconda3\envs\GMS_VENV_PYTHON\Library\plugins\platforms
至
Program Files\Gatan
或更具体地说是指DigitalMicrograph.exe的位置
在这里可以找到一个更一般的GMS无关线程:
Changing QT_PLUGIN_PATH in environment variables causes programs to fail
更新:
最好通过执行以下命令(具有管理员权限)来创建连接:
mklink /J "C:\Program Files\Gatan\platforms" "C:\ProgramData\Miniconda3\envs\GMS_VENV_PYTHON\Library\plugins\platforms"
这个问题仍然是通过这种方式解决的,如果您在Miniconda中更新/修改Qt,DM应该仍然可以找到最新版本
我也想在GMS中使用python,结果也出现了同样的错误。这花了我几个小时来找出原因以及如何修复它:
TL;博士
将以下代码另存为
start-gatan.bat
,并使用此start-gatan.bat
文件启动GMS。文件可以放在任何地方。请注意,当GMS处于活动状态时,控制台窗口必须保持打开状态重要注意事项:要显示matplotlib窗口,必须取消选中代码面板页脚中的“在后台线程上执行”复选框!而且它需要相对较长的时间来执行
原因
这既不是GMS错误,也不是python错误,而是
Qt
错误。对于渲染窗口matplotlib
(默认情况下)使用PyQT
,它使用Qt
。该错误说明了qwindows.dll
的情况,并且无法(显式地)找到它旁注:The renderer can be changed加入例如
matplotlib.use('GTK3Agg')
。这不再显示Qt
-错误,而是显示另一个错误,所以我没有遵循这个想法解决方案
qwindows.dll
位于%ProgramData%/Miniconda3/envs/GMS_VENV_PYTHON/Library/plugins/platforms
。平台插件的路径可以是set in the ^{%QT_PLUGIN_PATH%
中作为I found here因此添加(创建)系统变量1%QT_PLUGIN_PATH%
,其值为%ProgramData%\Miniconda3\envs\GMS_VENV_PYTHON\Library\plugins
。Windows中的系统变量可以添加到控制面板下系统>高级系统设置>环境变量请注意,此环境变量仅适用于GMS,而不适用于所有其他QT程序。因此,创建一个
start-gatan.bat
并复制TL顶部的代码后缀;博士组。现在双击start-gatan.bat
启动GMS,您的示例代码就可以运行了重要注意事项:要显示matplotlib窗口,必须取消选中代码面板页脚中的“在后台线程上执行”复选框,否则绘图窗口将不可见
1添加一个新的环境变量是可行的,但是如果您有另一个使用QT的程序(这很可能是原因),您将在另一个程序中遇到(几乎)相同的错误消息。如果您只有使用QT的GMS
pyqt
,这可能是您的解决方案进一步说明
几个论坛线程including the QT forum讲述了此
qwindows.dll
的重复路径。如果我的回答对你没有帮助,你可能想调查一下。请注意,必须在miniconda环境中检查环境变量。所以一定要跑在输出变量之前。另外,您可能希望查看qt配置,可以在
%PROGRAMDATA%/Miniconda3/envs/GMS_VENV_PYTHON/bin
找到它。请注意,在正常的Miniconda目录(%PROGRAMDATA%/Miniconda3/bin
)和envs
中总是有一个文件使MatplotLib在GMS中运行的测试方法
(使用GMS 3.4.1.2938测试版进行测试)
activate GMS_VENV_PYTHON
激活GMS\u VENV\u PYTHON环境pip install Matplotlib
(需要internet连接)安装Matplotlib另外,因为这是关于DM脚本的:使用混合脚本的功能,可以将Python调用包装成字符串,并直接从DM脚本中执行它:
相关问题 更多 >
编程相关推荐