How to view or save an using plain python (not ipython)?












1















In the process of learning dask, I am trying to generate program graph visualizations using the "visualize" method/function. However, I am not working with a notebook. As far as I can tell, there is no way to have dask output these graphs to anything other than an IPython.core.display.Image object, which I don't know how to view in regular python. For various reasons it's impractical for me to run my code using IPython.



Is there any way to display these objects in a regular Python script/shell? Or at least, to save them to a standard image file on disk?



Thanks!










share|improve this question



























    1















    In the process of learning dask, I am trying to generate program graph visualizations using the "visualize" method/function. However, I am not working with a notebook. As far as I can tell, there is no way to have dask output these graphs to anything other than an IPython.core.display.Image object, which I don't know how to view in regular python. For various reasons it's impractical for me to run my code using IPython.



    Is there any way to display these objects in a regular Python script/shell? Or at least, to save them to a standard image file on disk?



    Thanks!










    share|improve this question

























      1












      1








      1








      In the process of learning dask, I am trying to generate program graph visualizations using the "visualize" method/function. However, I am not working with a notebook. As far as I can tell, there is no way to have dask output these graphs to anything other than an IPython.core.display.Image object, which I don't know how to view in regular python. For various reasons it's impractical for me to run my code using IPython.



      Is there any way to display these objects in a regular Python script/shell? Or at least, to save them to a standard image file on disk?



      Thanks!










      share|improve this question














      In the process of learning dask, I am trying to generate program graph visualizations using the "visualize" method/function. However, I am not working with a notebook. As far as I can tell, there is no way to have dask output these graphs to anything other than an IPython.core.display.Image object, which I don't know how to view in regular python. For various reasons it's impractical for me to run my code using IPython.



      Is there any way to display these objects in a regular Python script/shell? Or at least, to save them to a standard image file on disk?



      Thanks!







      python image ipython dask






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Nov 22 '18 at 5:19









      42bsk42bsk

      83




      83
























          1 Answer
          1






          active

          oldest

          votes


















          1














          The .visualize method allows you to specify a filename to output to, and other parameters to be passed to dot/graphviz:



          d.visualize(filename='dask.pdf')


          produces a PDF file output instead of attempting an inline representation. Various other graphical formats are supported, such as PNG (although it may depend on how you installed graphviz).



          -EDIT-



          You can also extract the image bytes from the Image instance



          im = d.visualize()
          open('output.png', 'wb').write(im.data)


          which will be in PNG format (also given by im.format).






          share|improve this answer


























          • Thanks! Do you know if there's a way to save IPython.core.display.Image objects in general, i.e., not using the visualize filename kwarg? Although this does solve my specific issue.

            – 42bsk
            Nov 22 '18 at 21:57











          • The object has attributed like data (some bytes), format and filename for various sources. Not sure which would be populated in this case.

            – mdurant
            Nov 22 '18 at 22:10











          • "filename (unicode) – Path to a local file to load the data from. Images from a file are always embedded." This seems to indicate that the filename attribute is for loading rather than saving. Same goes for the others.

            – 42bsk
            Nov 23 '18 at 3:28











          • Yes, there are multiple way to make these images. It could be from a file, or it could be from a bunch of bytes.

            – mdurant
            Nov 23 '18 at 13:32











          • Your edit is exactly what I was getting at in my first comment. Thanks!

            – 42bsk
            Nov 26 '18 at 6:18











          Your Answer






          StackExchange.ifUsing("editor", function () {
          StackExchange.using("externalEditor", function () {
          StackExchange.using("snippets", function () {
          StackExchange.snippets.init();
          });
          });
          }, "code-snippets");

          StackExchange.ready(function() {
          var channelOptions = {
          tags: "".split(" "),
          id: "1"
          };
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function() {
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled) {
          StackExchange.using("snippets", function() {
          createEditor();
          });
          }
          else {
          createEditor();
          }
          });

          function createEditor() {
          StackExchange.prepareEditor({
          heartbeatType: 'answer',
          autoActivateHeartbeat: false,
          convertImagesToLinks: true,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: 10,
          bindNavPrevention: true,
          postfix: "",
          imageUploader: {
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          },
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          });


          }
          });














          draft saved

          draft discarded


















          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53424314%2fhow-to-view-or-save-an-ipython-core-display-image-object-using-plain-python-n%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown

























          1 Answer
          1






          active

          oldest

          votes








          1 Answer
          1






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes









          1














          The .visualize method allows you to specify a filename to output to, and other parameters to be passed to dot/graphviz:



          d.visualize(filename='dask.pdf')


          produces a PDF file output instead of attempting an inline representation. Various other graphical formats are supported, such as PNG (although it may depend on how you installed graphviz).



          -EDIT-



          You can also extract the image bytes from the Image instance



          im = d.visualize()
          open('output.png', 'wb').write(im.data)


          which will be in PNG format (also given by im.format).






          share|improve this answer


























          • Thanks! Do you know if there's a way to save IPython.core.display.Image objects in general, i.e., not using the visualize filename kwarg? Although this does solve my specific issue.

            – 42bsk
            Nov 22 '18 at 21:57











          • The object has attributed like data (some bytes), format and filename for various sources. Not sure which would be populated in this case.

            – mdurant
            Nov 22 '18 at 22:10











          • "filename (unicode) – Path to a local file to load the data from. Images from a file are always embedded." This seems to indicate that the filename attribute is for loading rather than saving. Same goes for the others.

            – 42bsk
            Nov 23 '18 at 3:28











          • Yes, there are multiple way to make these images. It could be from a file, or it could be from a bunch of bytes.

            – mdurant
            Nov 23 '18 at 13:32











          • Your edit is exactly what I was getting at in my first comment. Thanks!

            – 42bsk
            Nov 26 '18 at 6:18
















          1














          The .visualize method allows you to specify a filename to output to, and other parameters to be passed to dot/graphviz:



          d.visualize(filename='dask.pdf')


          produces a PDF file output instead of attempting an inline representation. Various other graphical formats are supported, such as PNG (although it may depend on how you installed graphviz).



          -EDIT-



          You can also extract the image bytes from the Image instance



          im = d.visualize()
          open('output.png', 'wb').write(im.data)


          which will be in PNG format (also given by im.format).






          share|improve this answer


























          • Thanks! Do you know if there's a way to save IPython.core.display.Image objects in general, i.e., not using the visualize filename kwarg? Although this does solve my specific issue.

            – 42bsk
            Nov 22 '18 at 21:57











          • The object has attributed like data (some bytes), format and filename for various sources. Not sure which would be populated in this case.

            – mdurant
            Nov 22 '18 at 22:10











          • "filename (unicode) – Path to a local file to load the data from. Images from a file are always embedded." This seems to indicate that the filename attribute is for loading rather than saving. Same goes for the others.

            – 42bsk
            Nov 23 '18 at 3:28











          • Yes, there are multiple way to make these images. It could be from a file, or it could be from a bunch of bytes.

            – mdurant
            Nov 23 '18 at 13:32











          • Your edit is exactly what I was getting at in my first comment. Thanks!

            – 42bsk
            Nov 26 '18 at 6:18














          1












          1








          1







          The .visualize method allows you to specify a filename to output to, and other parameters to be passed to dot/graphviz:



          d.visualize(filename='dask.pdf')


          produces a PDF file output instead of attempting an inline representation. Various other graphical formats are supported, such as PNG (although it may depend on how you installed graphviz).



          -EDIT-



          You can also extract the image bytes from the Image instance



          im = d.visualize()
          open('output.png', 'wb').write(im.data)


          which will be in PNG format (also given by im.format).






          share|improve this answer















          The .visualize method allows you to specify a filename to output to, and other parameters to be passed to dot/graphviz:



          d.visualize(filename='dask.pdf')


          produces a PDF file output instead of attempting an inline representation. Various other graphical formats are supported, such as PNG (although it may depend on how you installed graphviz).



          -EDIT-



          You can also extract the image bytes from the Image instance



          im = d.visualize()
          open('output.png', 'wb').write(im.data)


          which will be in PNG format (also given by im.format).







          share|improve this answer














          share|improve this answer



          share|improve this answer








          edited Nov 23 '18 at 14:00

























          answered Nov 22 '18 at 13:44









          mdurantmdurant

          10.6k11437




          10.6k11437













          • Thanks! Do you know if there's a way to save IPython.core.display.Image objects in general, i.e., not using the visualize filename kwarg? Although this does solve my specific issue.

            – 42bsk
            Nov 22 '18 at 21:57











          • The object has attributed like data (some bytes), format and filename for various sources. Not sure which would be populated in this case.

            – mdurant
            Nov 22 '18 at 22:10











          • "filename (unicode) – Path to a local file to load the data from. Images from a file are always embedded." This seems to indicate that the filename attribute is for loading rather than saving. Same goes for the others.

            – 42bsk
            Nov 23 '18 at 3:28











          • Yes, there are multiple way to make these images. It could be from a file, or it could be from a bunch of bytes.

            – mdurant
            Nov 23 '18 at 13:32











          • Your edit is exactly what I was getting at in my first comment. Thanks!

            – 42bsk
            Nov 26 '18 at 6:18



















          • Thanks! Do you know if there's a way to save IPython.core.display.Image objects in general, i.e., not using the visualize filename kwarg? Although this does solve my specific issue.

            – 42bsk
            Nov 22 '18 at 21:57











          • The object has attributed like data (some bytes), format and filename for various sources. Not sure which would be populated in this case.

            – mdurant
            Nov 22 '18 at 22:10











          • "filename (unicode) – Path to a local file to load the data from. Images from a file are always embedded." This seems to indicate that the filename attribute is for loading rather than saving. Same goes for the others.

            – 42bsk
            Nov 23 '18 at 3:28











          • Yes, there are multiple way to make these images. It could be from a file, or it could be from a bunch of bytes.

            – mdurant
            Nov 23 '18 at 13:32











          • Your edit is exactly what I was getting at in my first comment. Thanks!

            – 42bsk
            Nov 26 '18 at 6:18

















          Thanks! Do you know if there's a way to save IPython.core.display.Image objects in general, i.e., not using the visualize filename kwarg? Although this does solve my specific issue.

          – 42bsk
          Nov 22 '18 at 21:57





          Thanks! Do you know if there's a way to save IPython.core.display.Image objects in general, i.e., not using the visualize filename kwarg? Although this does solve my specific issue.

          – 42bsk
          Nov 22 '18 at 21:57













          The object has attributed like data (some bytes), format and filename for various sources. Not sure which would be populated in this case.

          – mdurant
          Nov 22 '18 at 22:10





          The object has attributed like data (some bytes), format and filename for various sources. Not sure which would be populated in this case.

          – mdurant
          Nov 22 '18 at 22:10













          "filename (unicode) – Path to a local file to load the data from. Images from a file are always embedded." This seems to indicate that the filename attribute is for loading rather than saving. Same goes for the others.

          – 42bsk
          Nov 23 '18 at 3:28





          "filename (unicode) – Path to a local file to load the data from. Images from a file are always embedded." This seems to indicate that the filename attribute is for loading rather than saving. Same goes for the others.

          – 42bsk
          Nov 23 '18 at 3:28













          Yes, there are multiple way to make these images. It could be from a file, or it could be from a bunch of bytes.

          – mdurant
          Nov 23 '18 at 13:32





          Yes, there are multiple way to make these images. It could be from a file, or it could be from a bunch of bytes.

          – mdurant
          Nov 23 '18 at 13:32













          Your edit is exactly what I was getting at in my first comment. Thanks!

          – 42bsk
          Nov 26 '18 at 6:18





          Your edit is exactly what I was getting at in my first comment. Thanks!

          – 42bsk
          Nov 26 '18 at 6:18




















          draft saved

          draft discarded




















































          Thanks for contributing an answer to Stack Overflow!


          • Please be sure to answer the question. Provide details and share your research!

          But avoid



          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.


          To learn more, see our tips on writing great answers.




          draft saved


          draft discarded














          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53424314%2fhow-to-view-or-save-an-ipython-core-display-image-object-using-plain-python-n%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown





















































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown

































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown







          Popular posts from this blog

          "Incorrect syntax near the keyword 'ON'. (on update cascade, on delete cascade,)

          Alcedinidae

          Origin of the phrase “under your belt”?