Python 是否可以在cygwin上绘制iGraph绘图?

Python 是否可以在cygwin上绘制iGraph绘图?,python,plot,cygwin,igraph,Python,Plot,Cygwin,Igraph,虽然在Ubuntu上生成iGraph绘图没有问题,但我在cygwin上遇到以下错误: 环境: 视窗7 Cygwin Cygwin_NT-6.1-WOW Ron 2.0.1(0.287/5/3) 图0.7.1 您的机器上的py2cairo可能没有问题,但您可以自己测试。尝试绘图(g,“test.png”,layout=layout)-这将把绘图保存到一个文件中,而不是显示它。您看到的错误消息是由igraph引发的,因为它无法确定如何指示操作系统在窗口中显示PNG文件(打印保存到该文件中) 用于显

虽然在Ubuntu上生成
iGraph
绘图没有问题,但我在cygwin上遇到以下错误:

环境:

  • 视窗7
  • Cygwin Cygwin_NT-6.1-WOW Ron 2.0.1(0.287/5/3)
  • 图0.7.1

    • 您的机器上的
      py2cairo
      可能没有问题,但您可以自己测试。尝试
      绘图(g,“test.png”,layout=layout)
      -这将把绘图保存到一个文件中,而不是显示它。您看到的错误消息是由igraph引发的,因为它无法确定如何指示操作系统在窗口中显示PNG文件(打印保存到该文件中)

      用于显示绘图的命令存储在名为
      apps.image\u viewer
      的配置变量中。您可以按如下方式对其进行更改:

      >>> from igraph import Configuration
      >>> cfg = Configuration.instance()
      >>> cfg["apps.image_viewer"] = "start"
      
      如果您将PNG文件的名称传递给Windows上的
      start
      命令,那么它可能会打开默认的图像查看器。如果有效,您可以通过将以下内容写入由
      cfg.filename
      指向的文件来持久化更改:

      [apps]
      image_viewer=start
      

      值得一提的是,igraph中用于确定在特定操作系统上使用哪个图像查看器的部分(如果
      apps.image\u viewer
      键不存在)位于名为
      get\u platform\u image\u viewer()
      的函数中的
      igraph/configuration.py
      。此函数使用
      platform.system()。如果您能让我知道您的Python中打印了什么
      platform.system()
      ,我将提交一个补丁,使igraph以与Windows相同的方式处理Cygwa。

      谢谢您的详细回答,@Tamás。我现在会检查它的各种建议。在我的cygwin上:
      platform.system()==cygwin\u NT-6.1-WOW
      (还有
      未实现的错误
      异常报告)。至于其他建议,@Tamás-将PNG保存到文件中是可行的。但是,我无法通过cygwin引导windows image viewer显示。我现在正在重新安装我的
      X11
      ,看看是否可以使用
      ImageMagick
      显示。您提到的补丁将不胜感激。如果您能设法解决如何在Windows上从Cygwin打开图像查看器的问题,我可以提供一个补丁(不幸的是,我没有Windows,所以我无法自己测试它)。请在您成功运行后与我联系,然后我将发布补丁。我尝试在
      图像查看器
      上搜索路径,但失败:您知道
      图像查看器
      的路径吗?不,但我发现一篇帖子似乎暗示Cygwin的
      cygstart
      与普通Windows提示符下的
      start
      类似,因此您可以尝试
      cygstart
      作为图像查看器。(来源:)
      >>> from igraph import Configuration
      >>> cfg = Configuration.instance()
      >>> cfg["apps.image_viewer"] = "start"
      
      [apps]
      image_viewer=start