diff --git a/demos/python/create_env.sh b/demos/python/create_env.sh
index 3787bf0..522ea77 100755
--- a/demos/python/create_env.sh
+++ b/demos/python/create_env.sh
@@ -24,29 +24,60 @@ folder=jpype_env
pythonCmd=python3
pipCmd=pip3
-# Create a python environment (stored in folder ) with jpype1 installed
+# First make sure that the virtualenv package is installed.
+$pipCmd show virtualenv > /dev/null 2>&1
+if [ $? -eq 0 ]; then
+ echo "virtualenv already installed, proceeding"
+else
+ echo "installing virtualenv with $pipCmd ...".
+ # On ubuntu, one could also install via the main package manager, e.g. sudo apt-get install python3-venv (I think this takes care of the followng anyway, but am unsure)
+ $pythonCmd -m pip install --user virtualenv
+ if [ $? -ne 0 ]; then
+ echo "pip install of virtualenv failed"
+ exit 1
+ else
+ echo "pip install of virtualenv succeeded"
+ fi
+fi
+
+# Create a python environment (stored in folder $folder)
$pythonCmd -m venv $folder
+if [ $? -ne 0 ]; then
+ # Virtual environment creation did not work:
+ echo "Virtual environment creation did not work." >&2
+ echo "If you are on ubuntu you should now run: sudo apt-get install python3-venv" >&2
+ echo "Then run this script again" >&2
+ exit 2
+else
+ echo "Virtual environment created in $folder"
+fi
# enter the environment
source $folder/bin/activate
+if [ $? -ne 0 ]; then
+ echo "Virtual environment unable to be activated" >&2
+ exit 3
+else
+ echo "Python environment started and activated."
+ echo "Beginning pip installations for the environment"
+fi
-echo "Python environment started and activated"
-
-# install jpype1, numpy and scipy (does not matter if they are already installed)
+# install jpype1 and numpy (does not matter if they are already installed)
$pipCmd install jpype1
$pipCmd install numpy
echo
echo "Jpype1 and numpy installed - you have a functional installation."
echo
-echo "Now trying scipy matplotlib, but they are optional..."
+echo "Now trying scipy, matplotlib and jupyter, but they are optional..."
echo
$pipCmd install scipy
$pipCmd install matplotlib
+$pipCmd install jupyter
echo
-echo "Scipy matplotlib installed"
+echo "Scipy, matplotlib and jupyter installed"
echo
deactivate
diff --git a/demos/python/start_env.sh b/demos/python/start_env.sh
index 326aa19..498add5 100755
--- a/demos/python/start_env.sh
+++ b/demos/python/start_env.sh
@@ -17,13 +17,19 @@
## along with this program. If not, see .
##
-# Start the python environment (stored in folder $folder) with jpype1, numpy and scipy installed
+# Start the python environment (stored in folder $folder) with jpype1, numpy and others installed
# Name of folder to use and python commands
folder=jpype_env
# enter the environment
source $folder/bin/activate
+if [ $? -ne 0 ]; then
+ echo "Virtual environment unable to be activated" >&2
+ return 3 # Need return instead of exit since we're running via source
+else
+ echo "Python environment from $folder started and activated."
+fi
echo
echo "Make sure you called this script as: source start_env.sh"
diff --git a/demos/python/start_jupyter_env.sh b/demos/python/start_jupyter_env.sh
new file mode 100755
index 0000000..f902a9d
--- /dev/null
+++ b/demos/python/start_jupyter_env.sh
@@ -0,0 +1,29 @@
+#!/bin/bash
+##
+## Java Information Dynamics Toolkit (JIDT)
+## Copyright (C) 2022, Joseph T. Lizier
+##
+## This program is free software: you can redistribute it and/or modify
+## it under the terms of the GNU General Public License as published by
+## the Free Software Foundation, either version 3 of the License, or
+## (at your option) any later version.
+##
+## This program is distributed in the hope that it will be useful,
+## but WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+## GNU General Public License for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with this program. If not, see .
+##
+
+# Start the python environment (stored in folder $folder) with jpype1, numpy and others installed
+# and then launch jupyter
+
+source start_env.sh
+
+echo "Started virtual environment, now starting jupyter ..."
+
+cd ../..
+jupyter notebook
+