GithubHelp home page GithubHelp logo

pluto-on-binder's Introduction

How to run Pluto on binder

You can use binder to run notebooks for free on the web.

Step 1

Upload your notebook to the web, and copy the link to your notebook file. An easy way to put notebook files online is using https://gist.github.com/

Step 2

Go to https://pluto-on-binder.glitch.me/ and paste your notebook link into the box. This will generate a binder link for your notebook that you can share with your friends!

https://pluto-on-binder.glitch.me/

Automatic Binder and HTML exports

If you have a repository with Pluto notebooks and you want to automatically generate HTML exports with a Binder button using GitHub Actions and GitHub Pages, take a look at our template repository.

๐Ÿ‘€ Note

This is the public repository that gets launched behind the scenes when you use a link generated by https://pluto-on-binder.glitch.me/.

You probably do not want to fork this repository and use it for another project, these instruction will come soon. This is also not the recommended way to install Pluto as a jupyter extension. For this, we are working on https://github.com/fonsp/pluto-on-jupyterlab.

Reading the source code of this repository might be confusing! But to Pluto's developers: have a look at the different branches, the master branch is for the demo link, all other branches are for other experiments.

pluto-on-binder's People

Contributors

4ld avatar fonsp avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

pluto-on-binder's Issues

Why is this link broken hlep

Failed to precompile Plots on opening notebook on binder

I used http://pluto-on-binder.glitch.me/ to generate a link to a Pluto notebook, but it failed to run/initialize with this error:

Distributed.ProcessExitedException(2)

The code that generated this error is:

begin
	using Pkg
	Pkg.activate(mktempdir())
	Pkg.add([Pkg.PackageSpec(name="PlutoUI",version="0.7"),
		 Pkg.PackageSpec(name="Plots"),])
	using PlutoUI, Plots
end

The full notebook is here. Am I doing something wrong?


EDIT: I changed this block into two blocks:

begin
	using Pkg
	Pkg.activate(mktempdir())
end

This block ran without error.

begin
	Pkg.add("PlutoUI")
	Pkg.add("Plots")
	using PlutoUI, Plots
end

This block now failed with the following error:

Failed to precompile Plots [91a5bcdd-55d7-5caf-9e0b-520d859cae80] to /srv/julia/pkg/compiled/v1.5/Plots/ld3vC_L1MAE.ji.

error(::String)@error.jl:33
compilecache(::Base.PkgId, ::String)@loading.jl:1305
_require(::Base.PkgId)@loading.jl:1030
require(::Base.PkgId)@loading.jl:928
require(::Module, ::Symbol)@loading.jl:923
top-level scope@Local: 4

Pkg registry issues with Pluto on Binder

Not sure where this issue belongs, but trying to track it down.

I am trying to use Pluto on Binder to load Manifest and Project files from an online repository.

When I download, activate, and instantiate these files, I get the error:
expected package QOI [4b34888f] to be registered

See this Discourse post for more details.

Not sure if this is an issue with QOi itself, Pluto on Binder, or something else?

pluto-on-binder.glitch.me not working with Safari

Under macOs (version 11.6 (20G165)), Safari (Version 15.0 (16612.1.29.41.4, 16612)) does not allow navigating to pluto-on-binder.glitch.me, despite stopping any ad blocker (i.e. ADGUARD).

Instead it works fine with Chrome, even with Ad Blocker on.

"Package Plots not found in current path"

Despite I see in setup.py the line

os.system('julia -e "import Pkg; Pkg.add([\\"DataFrames\\", \\"CSV\\", \\"Plots\\"]); Pkg.precompile()"')

when I launch a Pluto notebook on Binder, "Plots" is not found and requires (several minutes) to be installed after clicking on the "cloud icon" next to the 'using Plots' line.

DifferentialEquations failed to precompile [BUG]

Given the disscusions in PlutoUtils.jl I don't know how relevant this is, but I tried using pluto-on-binder to add a Binder button to a test repo with a Pluto notebook. It works just fine, but the code

begin
	
	# We set up a new environment for this notebook
	import Pkg
	Pkg.activate(mktempdir())
	
	
	# This is how you add a package:
	Pkg.add("Plots")
	Pkg.add("DifferentialEquations")
	
	using DifferentialEquations
	using Plots
	
end

produces an error (clearly DifferentialEquations.jl is breaking something):

Failed to precompile DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa] to /srv/julia/pkg/compiled/v1.5/DifferentialEquations/UQdwS_AZyCc.ji.

    error(::String)@error.jl:33
    compilecache(::Base.PkgId, ::String)@loading.jl:1305
    _require(::Base.PkgId)@loading.jl:1030
    require(::Base.PkgId)@loading.jl:928
    require(::Module, ::Symbol)@loading.jl:923
    top-level scope@Local: 12

Everything else worked, the testing repo is test_pluto_notebook where the binder button should reproduce the error. I will probably keep it up until this works or the whole thing is deprecated.

How to build docker image for faster rendering on binder online?

It seems that github repository with Pluto notebooks take longer time to build on binder because it builds a docker image everytime we click the binder link.

Would it be possible to create docker image itself of the julia environment we are working with Pluto notebook, and push it to the github repository to host it online for faster rendering??

If yes, can you help me how to create docker image that is binder-pluto friendly??

403 forbidden for jupyter-server-proxy cross-origin

Posting an issue to record this for future googlers

This took me a long time to fix: we use jupyter-server-proxy to run Pluto (custom IDE) on binder, which works fine. But for this project all requests need to be done cross-origin (very similar thebe).

By setting the header acess-allow-cross-origin to * on our server, all HTTP requests work (jupyter-server-proxy and binder ingress don't change this header), but a websocket connection still failed, with a 403 response.

Easier deployment

Wondering if this could be added to PyPI or jupyter-server-proxy's contrib to make it easy for people to create their own Pluto Binder setup with custom Julia Manifest or other custom Binder settings.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.