I have Ubuntu 20.04 with a Lambda stack that was provided at time of purchase of my workstation and updated today using “sudo apt-get update && sudo apt-get dist-upgrade”
I created a virtual environment for testing:
python3 -m venv --system-site-packages testenv
source testenv/bin/activate
Within this environment, I am able to use tensorflow successfully via a jupyter notebook, however I get an error message “No protocol specified” if I start a python session from the command line and then import tensorflow:
import tensorflow as tf
No protocol specified
What does this error mean? Do I need to set up an environment variable?
I have seen a similar issue once with two processes running on the same machine with Tensorboard. As it was using a invalid port (one reserved for X11)
TensorBoard on the default port of 6006 * (6000 - 6007 are reserved for X11)
If this is a Tensorboard in the job you can change Tensorboard to use port 9000.
It would get stuck trying to start orted (part of MPI).
Another way to find out what is happening is run your code with:
$ strace python -c ‘import tensorflow as tf’ >& tensorflow-strace.txt
You can send that output file here or contact ‘support@lambdal.com’
with that file and nvidia-bug-report.log.gz from ‘sudo nvidia-bug-report.sh’
The two main commands would be if you are ssh’ing into the machine:
Enable X11 forwarding (it can be disabled at the client or server level also).
$ ssh -X machine
You can check the server setting:
$ grep X /etc/ssh/sshd_config
You can play with:
a. ‘xhost +’ will give access to anybody to connect to your display (okay to test, but I would not keep it that way). I would recommend xhost +local:[hostname or ip]
(NOTE: To remove xhost setting: ‘xhost -’)
$ xhost +<mymachine or IP>
example: xhost +10.0.0.2
b. Set the DISPLAY
$ export DISPLAY=:0.0
c. xauth:
$ xauth merge xauth_extract
or remote host via ssh:
$ xauth extract - $DISPLAY | ssh user@<machine or IP> xauth merge -