IPython notebook WebSocket connection could not be established. You will NOT be able to run code - python

I've been tryin to run some simple code in IPython notebook but i keep getting this error:
"A WebSocket connection could not be established. You will NOT be able to run code. Check your network connection or notebook server configuration."
There were no problems during the install and there are no error messeges when i load the notebook.
I'm thinking maybe it has something to do with the fact im running my local server on xamp?
Doed anyone have a clue how to solve this?
I would be very greatfull.
Edit: I'm loading my notebook using the command 'ipython notebook' in the command prompet the output is:
[NotebookApp]"Using existing profile dir: c:\users\Nimrod\.ipython\profile_default
[NotebookApp]using MathJax from CDN: http://cdn.mathjax.org/mathjax/latest/mathjax.js
[NotebookApp] Serving notebooks from local directory c:\users\Nimrod
[NotebookApp] 0 active kernels
[NotebookApp] use control c to stop server and shut doen all kernels
[NotebookApp] Kernel started: 0ac0db12-63a0-4a4a-be25-0051
Thanks a lot.

Okay, by default ipython notebook launches standalone using the tornado http server running on local port 8888.
Try typing localhost:8888 into your browser.
If you want to customize it to run on a different port use:
ipython notebook --port=<NEW PORT>
If you'd also like to allow connections from remote machines do:
ipython notebook --ip=0.0.0.0 --port=<NEW PORT>

Related

error encountered when open jupyter notebook

This is the type of error I am getting after running this command
jupyter notebook --allow-root
Unable to connect
Firefox can’t establish a connection to the server at localhost:8888.
The site could be temporarily unavailable or too busy. Try again in a few moments.
If you are unable to load any pages, check your computer’s network connection.
If your computer or network is protected by a firewall or proxy, make sure that Firefox is permitted to access the Web.
Jupyter Notebook localhostlocalhost:8888 WINDOW RUNNING MY CODE
[I 07:27:27.681 NotebookApp] interrupted
Serving notebooks from local directory: /home/dsm/alx
0 active kernels
Jupyter Notebook 6.5.2 is running at:
http://localhost:8888/?token=24aa9fc8b381e38bce8482e2dcc88414fa94a2eec29f3799
or http://127.0.0.1:8888/?token=24aa9fc8b381e38bce8482e2dcc88414fa94a2eec29f3799
this is the command that really helped me
jupyter notebook --ip='*' --NotebookApp.token='' --NotebookApp.password=''

Jupyter notebook gives no error but doesn't open port connection

I'm trying to connect and use jupyter notebooks on a Windows remote desktop. I can install jupyter fine and even run it perfectly, but whenever I try to access the notebook via browser, I get a "can't reach" message for localhost:8888.
After some extensive research online, where people just needed to change 127.0.0.1 to localhost or vice versa, or changed their browser, nothing seemed to work. Some threads also suggested I change up the config file and instead run jupyter notebook --ip 0.0.0.0 --port 8888. Furthermore, I tried using several different ports and even asked the IT administrator which port is definetly available, but this was all to no avail.
Delving deeper into the problem, I checked whether jupyter opened a port connection on the remote desktop by running netstat -aon | findstr :*port* in the terminal. This was not the case.
I'm dumbfounded how jupyter notebook doesn't return an error while not actually creating a port connection on the remote machine. Seeing as I can easily set up a port connection through python -m http.server 8888 I have no idea how to tackle this problem. Any idea on why jupyter doesn't seem to open a port connection and how this can be remedied?

Connecting Jupyter notebook to Remote server

I have a linux server. On that I have installed Miniconda3 and other python packages along with Jupyter.
Now I want to run the notebook on the server and open in my browser.
For that, after installation of all packages, I do:
user#remoteip:$ jupyter notebook --no-browser --port=8890
Now I am copying the server IP address along with port to open it in my local browser.
http://remoteip:8890
However it doesn't open up anything.
I then followed all suggestions given in this SO answer by adding the required statements in the configuration file on the remote server anaconda and even local anaconda jupyter config file.
But it doesn't help at all.
After that I had to port forwarding as below in my local terminal:
user#localhost: ssh -N -f -L localhost:8890:localhost:8890 user#remoteip
And after that when I open
localhost:8890
now it opens up the notebook requiring the token to be entered and then it works.
My question is that do we need to do port forwarding everytime for us to open a notebook on remote server? One of my colleague said he didn't do any port forwarding and after first step itself, he was able to open the notebook with by typing
http://remoteip:8890
So I am not sure we need to do port forwarding for us to open the server jupyter notebook to open in browser or we can directly open the notebook with remoteip address?
Edit:
As per Alex's suggestion below, ran the following command after logging into dev server.
(ds_env) user#devvm1049:~$ jupyter notebook --no-mathjax --no-browser --ip 0.0.0.0 --port 8890
[I 23:49:56.032 NotebookApp] Serving notebooks from local directory: /home/user
[I 23:49:56.032 NotebookApp] The Jupyter Notebook is running at:
[I 23:49:56.032 NotebookApp] http://devvm.cdw.com:8890/
[I 23:49:56.032 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
Copied the above link to both chrome and Safari but it didn't open anything.
I have already done the above suggestions in this post. The only thing that has worked until now is doing Port tunneling but that is 3 steps everytime one has to open the jupyter on remote server.
Is this can be some port blocking issue? I tried pinging the remote server on laptop and it didn't give me any ping.
If you specify the --ip option when starting the server you can allow remote connection without port forwarding.
jupyter notebook --no-mathjax --no-browser --ip 0.0.0.0 --port 8890
# The --no-mathjax improves loading over slow connections
This is not recommended, though. See running a public jupyter notebook server. If you do this, I strongly recommend that you set a password, as described in that link.

Connect to remote python kernel from python code

I have been using PaperMill for executing my python notebook periodically. To execute compute intensive notebook, I need to connect to remote kernel running in my EMR cluster.
In case of Jupyter notebook I can do that by starting jupyter server with jupyter notebook --gateway-url=http://my-gateway-server:8888 and I am able to execute my code on remote kernel. But how do I let my local python code(through PaperMill) to use remote kernel? What changes do what to make in Kernel Manager to connect to remote kernel?
One related SO answer I could find is here. This suggests to do port forwarding to remote server and initialize KernelManager with the connection file from the server. I am not able to do this as blockingkernelmanager is no longer in Ipython.zmp and I would also prefer HTTP connection like how jupyter does.
Hacky approach - Set up a shell script to do the following :
Create a python environment on your EMR masternode using the hadoop user
Install sparkmagic in your environment and configure all kernels as described in the README.md file for sparkmagic
Copy your notebook to master node/use it directly from s3 location
Run with papermill :
papermill s3://path/to/notebook/input.ipynb s3://path/to/notebook/output.ipynb -p param=1
Step 1 and 2 are one time requirements if your cluster master node is the same every time.
A slightly better approach :
Set up a remote kernel in your Jupyter itself : REMOTE KERNEL
Execute with papermill as a normal notebook by selecting this remote kernel
I am using both approaches for different use cases and they seem to work fine for now.

Connect jupyter python by tunneled connection (via ssh)

I have a problem with connecting to jupyter that I run on remote computer. I have configured jupyter with ssl as in the following doc:
https://jupyter-notebook.readthedocs.io/en/latest/public_server.html#hashed-pw
Then I run jupyter on remote machine with command: jupyter notebook as in tutorial.
When its running I make a tunnel in another terminal by running a command:
ssh -N -f -L 8889:127.0.0.1:8881 user_name#hostname.com
Of course the jupyter is running on port 8881. When I open the browser on my local computer and try to open page:
localhost:8889
I got an error that connection was reset, and in command line the ssh returns the following error:
channel 2: open failed: connect failed: Connection refused
Can anyone help me? I was looking for an answer for whole day and still can't fix it.
The problem is, that in my case jupyter is running on localhost. At my server remote server I have no access to remote localhost, so the solution was quite easy - I run jupyter on specified ip = 0.0.0.0
jupyter notebook --no-browser --port=8881 --ip=0.0.0.0

Categories