To clarify my question:
I read the tutorial http://htmlpreview.github.io/?https://github.com/jmari/JupyterTalk/blob/master/Tutorial1_BasicStatistics.html My question is: How do I start JupyterTalk and how to I connect then to the Pharo Smalltalk kernelt from an nteract (https://nteract.io/desktop) client HH On 8/15/18, H. Hirzel <[hidden email]> wrote: > Attachement shows the result of a successful installation into Pharo 6.1 > > > > On 8/15/18, H. Hirzel <[hidden email]> wrote: >> After loading Roassal2 through the Pharo 6.1 catalog and re-executing >> the Metacello load script >> >> Metacello new >> baseline: 'JupyterTalk'; >> repository: 'github://jmari/JupyterTalk:master/repository'; >> load:'all' >> >> All loaded fine. >> >> I found 2 tests. (Result attached). One of them fails. >> >> >> The question is now how to proceed. >> >> On >> https://github.com/jmari/JupyterTalk/blob/master/README.md >> >> writing the installation procedure is noted on the 'ToDo' list. >> >> I suggest that we just develop the procedure in this mail thread. >> >> Most important question now is: >> >> How do I start the Pharo Smalltalk Jupyter kernel? >> >> HH. >> >> On 8/15/18, H. Hirzel <[hidden email]> wrote: >>> On 8/15/18, Stephan Eggermont <[hidden email]> wrote: >>>> H. Hirzel <[hidden email]> wrote: >>>>> P.S. I see that the Metacello script installs a lot in one go. >>>>> >>>>> I might be easier to identify the problem if the installation can be >>>>> done in steps, i.e. several load scripts in sequence. >>>> >>>> You already have all the information you need. RT classes missing. >>> Good point. I was assuming the script pulls in Roassal in case it is >>> needed. >>> >>> HH >>> >> > |
First screenshot shows a warning because JupyterTalk script doesn't care
about if Roassal or Polymath are installed or not, only tries to add some methods to several of its classes...for sure you will be interested in these frameworks combined with Jupyter, I suggest you to install them before JupyterTalk. If you are not planning to work with them, you just have to press "PROCEED" button. The error in the second screenshot is because JupyterTalk has to free the ZeroMQ context before closing the Pharo Image but It can not find the library...did you install Jupyter and ZeroMQ in your system? I have only tested on Mac Os X...There is a package called ZeroMQ , find LibZeroMQ class and check the unix64ModuleName and unixModuleName, it returns 'libzmq.so' but sure this is not the correct name!. Look for the correct module name in your system and test this package (this could hang the image, save it before) The last thing is to configure Jupyter for the new kernel. You need to find the correct path for the kernel configuration files. In Mac Os is "/usr/local/share/jupyter/kernels", you have to create a new folder inside named "pharo" containing a configuration file named "kernel.json" like this. '{ "argv": [ "/Path/to/Paro/executable/Pharo", "/Path/to/Pharo/Image/File/Pharo6.1-64.image", "ipharo", "{connection_file}" ], "display_name": "Pharo Smalltalk", "language": "smalltalk" }' Optionally, in the same folder you can place an image named "logo-64x64.png" with a Pharo logo so you will see the logo left to the logout button. -- Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html |
In reply to this post by Hannes Hirzel
Tutorial files placed on Github are notebooks written on jupyter using
JupyterTalk Kernel. They are not an installation procedure. I have just ran it in a new linux machine an now it works also on linux. I have done using pharo-launcher on a 64 bits image. - kernel description file must be placed in "/usr/local/share/jupyter/kernels/Pharo" as you can see in the screenshot. Take a look to the kernel.json file, you have to create this file and save it in "/usr/local/share/jupyter/kernels/Pharo". <http://forum.world.st/file/t369275/Captura_de_pantalla_2018-08-15_a_las_20.png> - ZeroMQ module name is libzmq.so.3 almost in my ubuntu linux after jupyter installation. I have updated github repo, so now it is working also on linux. Try again, let me know if it's working for you. -- Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html |
In reply to this post by Jesús Marí
Jesús Marí <[hidden email]> wrote:
> First screenshot shows a warning because JupyterTalk script doesn't care > about if Roassal or Polymath are installed or not, only tries to add some > methods to several of its classes...for sure you will be interested in these > frameworks combined with Jupyter, I suggest you to install them before > JupyterTalk. If you are not planning to work with them, you just have to > press "PROCEED" button. No. Fix the baseline. Read up on Metacello. You need to add some groups Stephan |
Yes, you are right, indeed there are three groups in the baseline so you can
install only JupyterTalk package doing Metacello new baseline: 'JupyterTalk'; repository: 'github://jmari/JupyterTalk:master/repository'; load:'default' This is the right way. ---------------------------- group: 'default' with: #('JupyterTalk'); group: 'roassalSupport' with: #('JupyterTalk-Roassal'); group: 'all' with: #('JupyterTalk-Roassal'). -- Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html |
Hello Jesús Marí
Your most recent note about the different groups for the Metacello command clarifies the situation. Thank you also for your two answers yesterday 15th. You asked if I installed Jupyter and and ZeroMQ in your system? The answer is no: I was assuming Jupytertalk (your Pharo Smalltalk implementation) will provide a standalone setup for a Jupyter kernel. Look at how nteract works (https://nteract.io/) works. I download one executable file and that contains the client (the electron packed web browser) and a kernel (nodejs). No Python Jupyter installation necessary. If I want to add a R kernel I execute what is given in https://nteract.io/kernels/r Within R install.packages(c('repr', 'IRdisplay', 'evaluate', 'crayon', 'pbdZMQ', 'devtools', 'uuid', 'digest')) devtools::install_github('IRkernel/IRkernel') IRkernel::installspec() So I thought it is similar with Pharo Smalltalk Jupytertalk. This does not seem to be the case. A full Jupyter installation is 600MB as I have seen so far. I could go for that at the moment but actually I prefer a smaller solution. So my follow up question is: How do I install the ZeroMQ asynchronous messaging library for Pharo? Is that sufficient? I understand that the ZeroMQ installation is a prerequisite for the Pharo Smalltalk Jupytertalk installation but that the Metacello script does not load that (or only part of it) --Hannes On 8/16/18, Jesús Marí <[hidden email]> wrote: > Yes, you are right, indeed there are three groups in the baseline so you > can > install only JupyterTalk package doing > > Metacello new > baseline: 'JupyterTalk'; > repository: 'github://jmari/JupyterTalk:master/repository'; > load:'default' > > This is the right way. > > ---------------------------- > group: 'default' with: #('JupyterTalk'); > group: 'roassalSupport' with: #('JupyterTalk-Roassal'); > group: 'all' with: #('JupyterTalk-Roassal'). > > > > -- > Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html > > |
In reply to this post by Jesús Marí
In the group with Roassal you should load the (symbolic) version of Roassal
you need. Stephan |
In reply to this post by Hannes Hirzel
I have experience in other kernels and if I am not wrong there aren't any
kernel that installs Jupyter at all. In the case of IRKernel, R installs the needed packages and then you have to execute a command in order to make the kernel available for Jupyter, please, take a look at https://irkernel.github.io/requirements/. You always need Jupyter on your system, a kernel is just a part in the complete Jupyter ecosystem, a kernel is totally unuseful by itself. Jupyter installs ZeroMQ because it uses this library to communicate with kernels so you don't need to install ZeroMQ. There are almost two ways to install Jupyter, in any case you need Python, you can do installing Python and the PIP ( python package manager) or installing a very complete data science ecosystem called anaconda https://www.anaconda.com/what-is-anaconda/ -- Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html |
In reply to this post by Stephan Eggermont-3
Maybe...I will study what is the best option, prevent installation or
install Roassal...lot of work to do. -- Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html |
In reply to this post by Jesús Marí
Hello again, Jesús Marí
On 8/18/18, Jesús Marí <[hidden email]> wrote: > I have experience in other kernels and if I am not wrong there aren't any > kernel that installs Jupyter at all. Actually nteract (https://nteract.io/desktop) contains everything in one 50MB package. Webclient and nodejs server. No Python needed if you are fine with JavaScript. So I thought maybe I could just add a Smalltalk kernel > In the case of IRKernel, R installs > the > needed packages and then you have to execute a command in order to make the > kernel available for Jupyter, please, take a look at > https://irkernel.github.io/requirements/. OK > You always need Jupyter on your system, a kernel is just a part in the > complete Jupyter ecosystem, a kernel is totally unuseful by itself. I went for the full anaconda installation in a pristine Ubuntu 18.04.1 https://www.anaconda.com/download/#linux It is a Python distribution hundreds of packages including the Jupyter notebook > Jupyter installs ZeroMQ because it uses this library to communicate with > kernels so you don't need to install ZeroMQ. OK Now jupyter notebook brings up what the screen shot shows. However there is no path /usr/local/share/jupyter/kernels/ as the README.md on https://github.com/jmari/JupyterTalk says. How did you get it working? --Hannes |
On 8/22/18, H. Hirzel <[hidden email]> wrote:
> Hello again, Jesús Marí > > On 8/18/18, Jesús Marí <[hidden email]> wrote: >> I have experience in other kernels and if I am not wrong there aren't >> any >> kernel that installs Jupyter at all. > > Actually nteract (https://nteract.io/desktop) contains everything in > one 50MB package. > Webclient and nodejs server. No Python needed if you are fine with > JavaScript. > So I thought maybe I could just add a Smalltalk kernel > >> In the case of IRKernel, R installs >> the >> needed packages and then you have to execute a command in order to make >> the >> kernel available for Jupyter, please, take a look at >> https://irkernel.github.io/requirements/. > > OK > >> You always need Jupyter on your system, a kernel is just a part in the >> complete Jupyter ecosystem, a kernel is totally unuseful by itself. > > I went for the full anaconda installation in a pristine Ubuntu 18.04.1 > https://www.anaconda.com/download/#linux > It is a Python distribution hundreds of packages including the Jupyter > notebook > >> Jupyter installs ZeroMQ because it uses this library to communicate with >> kernels so you don't need to install ZeroMQ. > > OK > > Now > jupyter notebook > brings up what the screen shot shows. > > However there is no path > /usr/local/share/jupyter/kernels/ > > as the README.md on > > > https://github.com/jmari/JupyterTalk > > > says. > > How did you get it working? > > --Hannes > JupyterNotebookWithPythonKernel.png (112K) Download Attachment |
The installation progressed, success seems to be near, but still a problem
The process so far: 1. Ubuntu 18.04.1 (64bit Bionic beaver) 2. Anaconda python distribution which includes the Jupyter notebook https://www.anaconda.com/download/#linux (Version for 3.6) 3. Pharo 6.1 64 bit 4. In a playground evaluate Metacello new baseline: 'JupyterTalk'; repository: 'github://jmari/JupyterTalk:master/repository'; load:'all' 5. Hit proceed for skipping the complaint about missing Roassal classes. 6. Save and quit image --> error message pops up, --> hit proceed. 7. Restart image. 8. Start Jupyter on command line with jupyter notebook The result is that a browser window is opened which allows to connect to the pharo kernel (see screen shot) 9. A crash when opening the new notebook [details below]. Suggestions how to proceed are welcome! --Hannes ---------------------------------------------------------------------------------------------------------------- The Pharo stack from the debugger ---------------------------------------------------------------------------------------------------------------- ExternalLibraryFunction(Object)>>error: ExternalLibraryFunction(Object)>>externalCallFailed ExternalLibraryFunction(ExternalFunction)>>invokeWithArguments: ZmqApi class>>apiZmqVersion:minor:patch: FFICalloutAPI>>function:module: ZmqApi class(Object)>>ffiCall:module: ZmqApi class>>apiZmqVersion:minor:patch: ZmqApi class>>version ZmqApi class>>forCurrentVersion ZmqContext>>initialize ZmqContext class(Behavior)>>new ZmqContext class>>new ZmqContext class>>current IPharoCommandLineHandler>>activate IPharoCommandLineHandler class(CommandLineHandler class)>>activateWith: [ aCommandLinehandler activateWith: commandLine ] in PharoCommandLineHandler(BasicCommandLineHandler)>>activateSubCommand: in Block: [ aCommandLinehandler activateWith: commandLine ] BlockClosure>>on:do: PharoCommandLineHandler(BasicCommandLineHandler)>>activateSubCommand: PharoCommandLineHandler(BasicCommandLineHandler)>>handleSubcommand PharoCommandLineHandler(BasicCommandLineHandler)>>handleArgument: [ self handleArgument: (self arguments ifEmpty: [ '' ] ifNotEmpty: [ :arguments | arguments first ]) ] in PharoCommandLineHandler(BasicCommandLineHandler)>>activate in Block: [ self... BlockClosure>>on:do: PharoCommandLineHandler(BasicCommandLineHandler)>>activate PharoCommandLineHandler>>activate PharoCommandLineHandler class(CommandLineHandler class)>>activateWith: [ super activateWith: aCommandLine ] in PharoCommandLineHandler class>>activateWith: in Block: [ super activateWith: aCommandLine ] WorldState>>runStepMethodsIn: WorldMorph>>runStepMethods WorldState>>doOneCycleNowFor: WorldState>>doOneCycleFor: Create_new_JupyterTalk_Pharo_Smalltalk_notebook_2018-08-22.png (85K) Download Attachment JupyterTalk-Error_after_creating_notebook_Screenshot_2018-08-22.png (191K) Download Attachment |
P.S. Probably noteworthy is that for some reason a second instance of
Pharo was opened. Probably by the command jupyter notebook I could close one but after closing the other instance it was opened automatically again. On 8/22/18, H. Hirzel <[hidden email]> wrote: > The installation progressed, success seems to be near, but still a problem > > The process so far: > > 1. Ubuntu 18.04.1 (64bit Bionic beaver) > > 2. Anaconda python distribution which includes the Jupyter notebook > https://www.anaconda.com/download/#linux > (Version for 3.6) > > 3. Pharo 6.1 64 bit > > 4. In a playground evaluate > Metacello new > baseline: 'JupyterTalk'; > repository: 'github://jmari/JupyterTalk:master/repository'; > load:'all' > > 5. Hit proceed for skipping the complaint about missing Roassal classes. > > 6. Save and quit image --> error message pops up, --> hit proceed. > > 7. Restart image. > > 8. Start Jupyter on command line with > > jupyter notebook > > The result is that a browser window is opened which allows to > connect to the pharo > kernel (see screen shot) > > 9. A crash when opening the new notebook [details below]. > > Suggestions how to proceed are welcome! > > --Hannes > > > ---------------------------------------------------------------------------------------------------------------- > The Pharo stack from the debugger > ---------------------------------------------------------------------------------------------------------------- > > ExternalLibraryFunction(Object)>>error: > ExternalLibraryFunction(Object)>>externalCallFailed > ExternalLibraryFunction(ExternalFunction)>>invokeWithArguments: > ZmqApi class>>apiZmqVersion:minor:patch: > FFICalloutAPI>>function:module: > ZmqApi class(Object)>>ffiCall:module: > ZmqApi class>>apiZmqVersion:minor:patch: > ZmqApi class>>version > ZmqApi class>>forCurrentVersion > ZmqContext>>initialize > ZmqContext class(Behavior)>>new > ZmqContext class>>new > ZmqContext class>>current > IPharoCommandLineHandler>>activate > IPharoCommandLineHandler class(CommandLineHandler class)>>activateWith: > [ aCommandLinehandler activateWith: commandLine ] in > PharoCommandLineHandler(BasicCommandLineHandler)>>activateSubCommand: > in Block: [ aCommandLinehandler activateWith: commandLine ] > BlockClosure>>on:do: > PharoCommandLineHandler(BasicCommandLineHandler)>>activateSubCommand: > PharoCommandLineHandler(BasicCommandLineHandler)>>handleSubcommand > PharoCommandLineHandler(BasicCommandLineHandler)>>handleArgument: > [ self > handleArgument: > (self arguments > ifEmpty: [ '' ] > ifNotEmpty: [ :arguments | arguments first ]) ] in > PharoCommandLineHandler(BasicCommandLineHandler)>>activate in Block: [ > self... > BlockClosure>>on:do: > PharoCommandLineHandler(BasicCommandLineHandler)>>activate > PharoCommandLineHandler>>activate > PharoCommandLineHandler class(CommandLineHandler class)>>activateWith: > [ super activateWith: aCommandLine ] in PharoCommandLineHandler > class>>activateWith: in Block: [ super activateWith: aCommandLine ] > WorldState>>runStepMethodsIn: > WorldMorph>>runStepMethods > WorldState>>doOneCycleNowFor: > WorldState>>doOneCycleFor: > |
I restarted the machine and DID NOT start Pharo.
Just jupyter notebook. and then in the browser 'New ' / 'Pharo Smalltalk' --> Pharo was started up automatically. But the error is still there. More details see screen shot On 8/22/18, H. Hirzel <[hidden email]> wrote: > P.S. Probably noteworthy is that for some reason a second instance of > Pharo was opened. Probably by the command > > jupyter notebook > > I could close one but after closing the other instance it was opened > automatically again. > > On 8/22/18, H. Hirzel <[hidden email]> wrote: >> The installation progressed, success seems to be near, but still a >> problem >> >> The process so far: >> >> 1. Ubuntu 18.04.1 (64bit Bionic beaver) >> >> 2. Anaconda python distribution which includes the Jupyter notebook >> https://www.anaconda.com/download/#linux >> (Version for 3.6) >> >> 3. Pharo 6.1 64 bit >> >> 4. In a playground evaluate >> Metacello new >> baseline: 'JupyterTalk'; >> repository: 'github://jmari/JupyterTalk:master/repository'; >> load:'all' >> >> 5. Hit proceed for skipping the complaint about missing Roassal classes. >> >> 6. Save and quit image --> error message pops up, --> hit proceed. >> >> 7. Restart image. >> >> 8. Start Jupyter on command line with >> >> jupyter notebook >> >> The result is that a browser window is opened which allows to >> connect to the pharo >> kernel (see screen shot) >> >> 9. A crash when opening the new notebook [details below]. >> >> Suggestions how to proceed are welcome! >> >> --Hannes >> >> >> ---------------------------------------------------------------------------------------------------------------- >> The Pharo stack from the debugger >> ---------------------------------------------------------------------------------------------------------------- >> >> ExternalLibraryFunction(Object)>>error: >> ExternalLibraryFunction(Object)>>externalCallFailed >> ExternalLibraryFunction(ExternalFunction)>>invokeWithArguments: >> ZmqApi class>>apiZmqVersion:minor:patch: >> FFICalloutAPI>>function:module: >> ZmqApi class(Object)>>ffiCall:module: >> ZmqApi class>>apiZmqVersion:minor:patch: >> ZmqApi class>>version >> ZmqApi class>>forCurrentVersion >> ZmqContext>>initialize >> ZmqContext class(Behavior)>>new >> ZmqContext class>>new >> ZmqContext class>>current >> IPharoCommandLineHandler>>activate >> IPharoCommandLineHandler class(CommandLineHandler class)>>activateWith: >> [ aCommandLinehandler activateWith: commandLine ] in >> PharoCommandLineHandler(BasicCommandLineHandler)>>activateSubCommand: >> in Block: [ aCommandLinehandler activateWith: commandLine ] >> BlockClosure>>on:do: >> PharoCommandLineHandler(BasicCommandLineHandler)>>activateSubCommand: >> PharoCommandLineHandler(BasicCommandLineHandler)>>handleSubcommand >> PharoCommandLineHandler(BasicCommandLineHandler)>>handleArgument: >> [ self >> handleArgument: >> (self arguments >> ifEmpty: [ '' ] >> ifNotEmpty: [ :arguments | arguments first ]) ] in >> PharoCommandLineHandler(BasicCommandLineHandler)>>activate in Block: [ >> self... >> BlockClosure>>on:do: >> PharoCommandLineHandler(BasicCommandLineHandler)>>activate >> PharoCommandLineHandler>>activate >> PharoCommandLineHandler class(CommandLineHandler class)>>activateWith: >> [ super activateWith: aCommandLine ] in PharoCommandLineHandler >> class>>activateWith: in Block: [ super activateWith: aCommandLine ] >> WorldState>>runStepMethodsIn: >> WorldMorph>>runStepMethods >> WorldState>>doOneCycleNowFor: >> WorldState>>doOneCycleFor: >> > JupyterTalk_ZeroMQ_error_Screenshot_2018-08-22.png (177K) Download Attachment |
If I'm following right, you found jupyter/kernel folder and you created the
kernel.json file, so you are very close to have everything running. In the screenshot,t Pharo is not able to find zeromq library libzmq.so.3, maybe anaconda installs other version. Please check for your libzmq.so file name, it must be in /usr/local/lib or any other folder added in the dynamic library path in your system, then you can create a link from your lib to libzmq.so.3, or simply change LibZeroMQ unix64ModuleName to return the correct library name. -- Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html |
In reply to this post by Hannes Hirzel
I'll take a look to *nteract*, seems that it uses the same protocol to
communicate with kernels. -- Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html |
In reply to this post by Hannes Hirzel
if you stop/kill the process (closing pharo), jupyter start it again.
By now kernel.json file do not open pharo in "headless" mode, because JupiterTalk is not released and I'm suddenly updating the code, anyway...there's nothing like Pharo debugger... Did you find libzeromq.so ? what version do you have? -- Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html |
In reply to this post by Hannes Hirzel
please try the updated version.
I have just uploaded a new version of libZeroMQ class that searches for the correct lib through the LD_LIBRARY_PATH. -- Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html |
This post was updated on .
In reply to this post by Hannes Hirzel
I've been playing with nteract and surprissently it uses the same kernels
than Jupyter, it means all of your kernels published in /use/local/share/jupyter/kernels are usable by nteract. With a very simple change in session initialization Jupytertalk works on nteract except display api. I'm sure it will work with a little effort. -- Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html |
In reply to this post by Jesús Marí
On 8/23/18, Jesús Marí <[hidden email]> wrote:
> I'll take a look to *nteract*, seems that it uses the same protocol to > communicate with kernels. Good, actually my goal is to have a simple installation in a new Linux installation, something like a) download nteract (https://nteract.io/desktop), a 50MB executable file b) set up Pharo 6.1 with JupyterTalk c) whatever else is necessary, hopefully not to much |
Free forum by Nabble | Edit this page |