Perldl 无法绘图。 Gnuplot 无法使用 cpan 部署

问题描述 投票:0回答:1

按照 Håkon Hægland 的建议,使用干净的新安装开始单独的主题。
对解决方案感兴趣的小伙伴可以直接跳到最后。 Gnuplot 安装失败。问题描述在这里
现在删除所有 perl 并从全新安装开始。
使用 strawberry perl pdl 版本,来自压缩包 strawberry-perl-5.32.1.1-64bit-PDL,没有 msi。
首先根据PDL 第一步的文档.
我跑了

cpan PDL::Graphics::Simple
。 看起来成功了。 现在根据 PDL 第一步的文档

运行 perldl
pdl> use PDL::Graphics::Simple
PDL::Graphics::Simple::register: PDL::Graphics::Simple::Prima is out of date - winging it at perlhome/perl/site/lib/PDL/Graphics/Simple.pm line 1397, <DATA> line 209.
pdl>imag (sin(rvals(200,200)+1))
Trying gnuplot (PDL::Graphics::Gnuplot)...nope
Trying pgplot (PDL::Graphics::PGPLOT::Window)...nope
Trying plplot (PDL::Graphics::PLplot)...nope
Trying prima (PDL::Graphics::Prima)...nope
Sorry, all known plotting engines failed.  Install one and try again.

所以,第一个警告没有根据 PDL 第一步的文档。调用

imag (sin(rvals(200,200)+1))
后的进一步错误也没有根据文档进行。测试任何情节

pdl> use PDL::Graphics::Gnuplot;
Can't locate PDL/Graphics/Gnuplot.pm in @INC (you may need to install the PDL::Graphics::Gnuplot module) (@INC contains: perlhome/perl/site/lib perlhome/perl/vendor/lib perlhome/perl/lib) at (eval 61) line 4, <DATA> line 209.
BEGIN failed--compilation aborted at (eval 61) line 4, <DATA> line 209.

提前知道没有安装 plot,继续安装 gnuplot,列表中的第一个。

cpan PDL::Graphics::Gnuplot
perl plot gnuplot strawberry-perl pdl
1个回答
2
投票

我建议直接跳到UPDATE 1, 根据@Ed 的建议,我将答案与问题分开。
作为一个长期的尝试和失败。在@HåkonHægland 的帮助下。
注意:PDL 文档仅指定 此处列举的步骤 N4。其他一切都不是文档的一部分。这种差异并不是实际预期的 (!!)。启动perldl的时候看到这样一句话:

在一个伪装成科学的软件上,这看起来更像是 pdl 不起作用和文档不一致的借口。

##########################################
第一个解决方案有效,但在干净的新 Windows 11 笔记本电脑上不起作用,所以我也不希望它在其他干净的平台上工作。
执行步骤:

  1. 准备干净的新系统。不是那么关键,步骤 N3 应该足以避免干扰。
  2. 部署了一个新的干净的 Perl,最新版本。可能没那么重要,但我从 strawberry perl 解压了适用于 Windows 的全新“strawberry-perl-5.32.1.1-64bit-PDL”,zip 包,没有 msi。假设在这里解压perlhome
  3. 在命令行中,从系统 %PATH% 变量中删除了 gnuplot 的路径。如果没有 gluplot 残余,则不需要此步骤。它可以全局完成,也可以在执行其余步骤的同一命令行中在本地完成。
  4. 官方gnuplot站点下载了gnuplot stable zip package mingw edition for windows。将bin文件夹解压到perlhome\perl中,不覆盖已有的dll。
  5. 在命令行中执行
    cpan PDL::Graphics::Simple
  6. 在命令行中执行
    cpan PDL::Graphics::Gnuplot

注意,第 5 步和第 6 步在下载时显示了一些 lwp 失败,但并不严重。 lwp 失败了一个来源,然后从替代资源下载。

##########################################
更新 1: 在干净的新系统 Windows 11 上,但我希望它适用于任何其他系统。执行步骤和上面类似,有一点点不同,将perl包自带的c++编译器添加到路径变量中,还有第4步,gnuplot解包,必须在最后完成,不能在部署包之前完成从第 5、6 步开始: 上面的步骤没有用,所以不要遵循它们。也许在单独的系统上执行以下步骤会更好,因此您将创建一个 perl+pdl+gnuplot 便携式,准备好从记忆棒或外部驱动器运行,或复制并在需要的地方运行。

  1. 新电脑,已经干净了
  2. strawberry perl 部署了一个新的清洁程序,解压了适用于 Windows 的“strawberry-perl-5.32.1.1-64bit-PDL”,zip 包,没有 msi。假设在这里解压perlhome。请注意,这是便携版+PDL,这意味着它只是为了复制和工作,例如在记忆棒上。如果未添加到系统,请设置 Perl
    set path=%path%;perlhome\perl\bin
    的路径。
  3. Strawberry perl 自带 C/C++ 编译器。 perlhome�
© www.soinside.com 2019 - 2024. All rights reserved.