I am trying to integrate MATLAB and jupyter notebook so that I can use MATLAB in the web based notebooks and lab. I am running MATLAB R2020a, python 3.6 (from conda 4.8.2); the computer’s OS is Ubuntu 18.04. I am getting an error saying the MATLAB engine is not installed, though as far as I can tell it has been installed.
I have performed the following steps:
1. I made a conda environment with python 3.6 conda create matlab-conda python=3.6.
2. From there, I installed matlab_kernel using pip by typing in pip install matlab-kernel.
3. If I check that the kernel is installed by keying in jupyter kernelspec list and the view the lists, it says:
Available kernels:
ir /home/computerone/.local/share/jupyter/kernels/ir
matlab
/home/computerone/miniconda3/envs/matlab-conda/share/jupyter/kernels/matlab
python3
/home/computerone/miniconda3/envs/matlab-conda/share/jupyter/kernels/python3
To configure MATLAB, I located the extern/engines/python folder, and from within conda env ran the setup: python setup.py install. This successfully ran.
When I open the juyter notebook or lab, the MATLAB notebook option is there and I can select it, revealing a notebook; however, when I open a MATLABnotebook and type a command (e.g., 2+5), the following error is thrown:
[MetaKernelApp] ERROR | Exception in message handler:
Traceback (most recent call last):
File "/home/computerone/miniconda3/envs/matlab-conda/lib/python3.6/site-packages/ipykernel/kernelbase.py", line 268, in dispatch_shell
yield gen.maybe_future(handler(stream, idents, msg))
File "/home/computerone/miniconda3/envs/matlab-conda/lib/python3.6/site-packages/tornado/gen.py", line 735, in run
value = future.result()
File "/home/computerone/miniconda3/envs/matlab-conda/lib/python3.6/site-packages/tornado/gen.py", line 209, in wrapper
yielded = next(result)
File "/home/computerone/miniconda3/envs/matlab-conda/lib/python3.6/site-packages/ipykernel/kernelbase.py", line 541, in execute_request
user_expressions, allow_stdin,
File "/home/computerone/miniconda3/envs/matlab-conda/lib/python3.6/site-packages/metakernel/_metakernel.py", line 395, in do_execute
retval = self.do_execute_direct(code)
File "/home/computerone/miniconda3/envs/matlab-conda/lib/python3.6/site-packages/matlab_kernel/kernel.py", line 99, in do_execute_direct
retval = self._execute_async(code)
File "/home/computerone/miniconda3/envs/matlab-conda/lib/python3.6/site-packages/matlab_kernel/kernel.py", line 257, in _execute_async
future = self._matlab.eval(code, **kwargs)
File "/home/computerone/miniconda3/envs/matlab-conda/lib/python3.6/site-packages/matlab_kernel/kernel.py", line 81, in _matlab
""")
ImportError:
Matlab engine not installed:
See https://www.mathworks.com/help/matlab/matlab-engine-for-python.htm
Related
I've created a virtual environment in my working folder and a jupyter notebook but it seems like my jupyter notebook is not connected to Python.
I've created a virtual environment inside this directory(C:\Users\MyName\Documents\DataScience\Code) by running the following commands:
pip install virtualenv
virtualenv .venv
.venv\Scripts\activate
Then, I've installed these two following packages.
pip install jupyter
pip install jupyterlab
After installing jupyter, I opened the jupyter notebook by typing in "jupyter notebook" in the command prompt and it worked. When I type in "Jupyter Notebook", the browser pops up. But if I try to create a new notebook in the jupyter browser by clicking the "New" dropdown menu and selecting "Python 3" it gives me an error. It let me open a new notebook but it throws a Kernel error. It still says Python 3 (ipykernel) on the top right corner but with a black dot that looks like a bomb icon.
Normally, when I create a new jupyter notebook, it just says Python 3 without ipykernel. I've tried "pip(or conda) install pywin32" but it didn't work. How do I solve this error and connect my notebook to Python? I have Python3.8 on my computer and would like to connect jupyter notebook to regular Python 3 without ipykernel.
FYI, this is an error message I see when I click on the kernel error.
Traceback (most recent call last):
File "c:\users\MyName\Documents\DataScience\Code\.venv\lib\site-packages\tornado\web.py", line 1704, in _execute
result = await result
File "c:\users\MyName\Documents\DataScience\Code\.venv\lib\site-packages\tornado\gen.py", line 769, in run
yielded = self.gen.throw(*exc_info) # type: ignore
File "c:\users\MyName\Documents\DataScience\Code\.venv\lib\site-packages\notebook\services\sessions\handlers.py", line 69, in post
model = yield maybe_future(
File "c:\users\MyName\Documents\DataScience\Code\.venv\lib\site-packages\tornado\gen.py", line 762, in run
value = future.result()
File "c:\users\MyName\Documents\DataScience\Code\.venv\lib\site-packages\tornado\gen.py", line 769, in run
yielded = self.gen.throw(*exc_info) # type: ignore
File "c:\users\MyName\Documents\DataScience\Code\.venv\lib\site-packages\notebook\services\sessions\sessionmanager.py", line 98, in create_session
kernel_id = yield self.start_kernel_for_session(session_id, path, name, type, kernel_name)
File "c:\users\MyName\Documents\DataScience\Code\.venv\lib\site-packages\tornado\gen.py", line 762, in run
value = future.result()
File "c:\users\MyName\Documents\DataScience\Code\.venv\lib\site-packages\tornado\gen.py", line 769, in run
yielded = self.gen.throw(*exc_info) # type: ignore
File "c:\users\MyName\Documents\DataScience\Code\.venv\lib\site-packages\notebook\services\sessions\sessionmanager.py", line 110, in start_kernel_for_session
kernel_id = yield maybe_future(
File "c:\users\MyName\Documents\DataScience\Code\.venv\lib\site-packages\tornado\gen.py", line 762, in run
value = future.result()
File "c:\users\MyName\Documents\DataScience\Code\.venv\lib\site-packages\notebook\services\kernels\kernelmanager.py", line 176, in start_kernel
kernel_id = await maybe_future(self.pinned_superclass.start_kernel(self, **kwargs))
File "c:\users\MyName\Documents\DataScience\Code\.venv\lib\site-packages\jupyter_client\multikernelmanager.py", line 186, in start_kernel
km.start_kernel(**kwargs)
File "c:\users\MyName\Documents\DataScience\Code\.venv\lib\site-packages\jupyter_client\manager.py", line 337, in start_kernel
kernel_cmd, kw = self.pre_start_kernel(**kw)
File "c:\users\MyName\Documents\DataScience\Code\.venv\lib\site-packages\jupyter_client\manager.py", line 286, in pre_start_kernel
self.write_connection_file()
File "c:\users\MyName\Documents\DataScience\Code\.venv\lib\site-packages\jupyter_client\connect.py", line 466, in write_connection_file
self.connection_file, cfg = write_connection_file(self.connection_file,
File "c:\users\MyName\Documents\DataScience\Code\.venv\lib\site-packages\jupyter_client\connect.py", line 136, in write_connection_file
with secure_write(fname) as f:
File "c:\users\MyName\anaconda3\lib\contextlib.py", line 113, in __enter__
return next(self.gen)
File "c:\users\MyName\Documents\DataScience\Code\.venv\lib\site-packages\jupyter_core\paths.py", line 461, in secure_write
win32_restrict_file_to_user(fname)
File "c:\users\MyName\Documents\DataScience\Code\.venv\lib\site-packages\jupyter_core\paths.py", line 387, in win32_restrict_file_to_user
import win32api
ImportError: DLL load failed while importing win32api: The specified procedure could not be found.
Thank you.
Jupyter Notebook makes sure that the IPython kernel is available, but you have to manually add a kernel with a different version of Python or a virtual environment.
pip install --user ipykernel
Next you can add your virtual environment to Jupyter by typing:
python -m ipykernel install --user --name=myenv
This should print the following:
Installed kernelspec myenv in /home/user/.local/share/jupyter/kernels/myenv
In this folder you will find a kernel.json file which should look the following way if you did everything correctly:
{
"argv": [
"/home/user/anaconda3/envs/myenv/bin/python",
"-m",
"ipykernel_launcher",
"-f",
"{connection_file}"
],
"display_name": "myenv",
"language": "python"
}
I was running python 2.7 in Anaconda2 in spyder 4 up until today with no problems. But now I keep getting the same error, when I make an environment and install python 2.7 and spyder in it:
Traceback (most recent call last):
File "/home/cmiprc/anaconda2/envs/test/lib/python2.7/site-packages/spyder/app/mainwindow.py", line 3718, in main
mainwindow = run_spyder(app, options, args)
File "/home/cmiprc/anaconda2/envs/test/lib/python2.7/site-packages/spyder/app/mainwindow.py", line 3557, in run_spyder
main = MainWindow(options)
File "/home/cmiprc/anaconda2/envs/test/lib/python2.7/site-packages/spyder/app/mainwindow.py", line 426, in init
from spyder.preferences.runconfig import RunConfigPage
File "/home/cmiprc/anaconda2/envs/test/lib/python2.7/site-packages/spyder/preferences /runconfig.py", line 482, in
class RunConfigPage(GeneralConfigPage):
File "/home/cmiprc/anaconda2/envs/test/lib/python2.7/site-packages/spyder/preferences/runconfig.py", line 487, in RunConfigPage
ICON = ima.icon('run')
File "/home/cmiprc/anaconda2/envs/test/lib/python2.7/site-packages/spyder/utils/icon_manager.py", line 394, in icon
directory=_resource['directory'])
File "/home/cmiprc/anaconda2/envs/test/lib/python2.7/site-packages/qtawesome/init.py", line 178, in load_font
return _instance().load_font(prefix, ttf_filename, charmap_filename, directory)
File "/home/cmiprc/anaconda2/envs/test/lib/python2.7/site-packages/qtawesome/init.py", line 54, in _instance
'materialdesignicons-webfont-charmap.json')
File "/home/cmiprc/anaconda2/envs/test/lib/python2.7/site-packages/qtawesome/iconic_font.py", line 206, in init
super().init()
TypeError: super() takes at least 1 argument (0 given)
This started happening after I reinstalled the package "pydicom" in the environment, and now nothing works. I have reinstalled anaconda2, used spyder --reset, and all other common suggestions.
Spyder 3.3.6 works in the base environment, but every time I make a new environment and install spyder in this, I get the same error. Any suggestions?
(Spyder maintainer here) To fix this problem, you need to install QtAwesome 0.7.3 in your environment. For that, please use the following command:
conda install qtawesome=0.7.3
I am a newbie to python. I am getting the below error in Kernel while opening jupyter notebook. Any ideas how I can resolve it? Installation of jupyter has been done via Anaconda3 - tried reinstalling and setting environment variables, but no luck so far. Any help would be greatly appreciated.
Traceback (most recent call last):
File "C:\Users\drag88\AppData\Roaming\Python\Python37\site-packages\tornado\web.py", line 1699, in _execute
result = await result
File "C:\Users\drag88\AppData\Roaming\Python\Python37\site-packages\tornado\gen.py", line 742, in run
yielded = self.gen.throw(*exc_info) # type: ignore
File "C:\Users\drag88\AppData\Roaming\Python\Python37\site-packages\notebook\services\sessions\handlers.py", line 72, in post
type=mtype))
File "C:\Users\drag88\AppData\Roaming\Python\Python37\site-packages\tornado\gen.py", line 735, in run
value = future.result()
File "C:\Users\drag88\AppData\Roaming\Python\Python37\site-packages\tornado\gen.py", line 742, in run
yielded = self.gen.throw(*exc_info) # type: ignore
File "C:\Users\drag88\AppData\Roaming\Python\Python37\site-packages\notebook\services\sessions\sessionmanager.py", line 88, in create_session
kernel_id = yield self.start_kernel_for_session(session_id, path, name, type, kernel_name)
File "C:\Users\drag88\AppData\Roaming\Python\Python37\site-packages\tornado\gen.py", line 735, in run
value = future.result()
File "C:\Users\drag88\AppData\Roaming\Python\Python37\site-packages\tornado\gen.py", line 742, in run
yielded = self.gen.throw(*exc_info) # type: ignore
File "C:\Users\drag88\AppData\Roaming\Python\Python37\site-packages\notebook\services\sessions\sessionmanager.py", line 101, in start_kernel_for_session
self.kernel_manager.start_kernel(path=kernel_path, kernel_name=kernel_name)
File "C:\Users\drag88\AppData\Roaming\Python\Python37\site-packages\tornado\gen.py", line 735, in run
value = future.result()
File "C:\Users\drag88\AppData\Roaming\Python\Python37\site-packages\tornado\gen.py", line 209, in wrapper
yielded = next(result)
File "C:\Users\drag88\AppData\Roaming\Python\Python37\site-packages\notebook\services\kernels\kernelmanager.py", line 168, in start_kernel
super(MappingKernelManager, self).start_kernel(**kwargs)
File "C:\Users\drag88\AppData\Roaming\Python\Python37\site-packages\jupyter_client\multikernelmanager.py", line 110, in start_kernel
km.start_kernel(**kwargs)
File "C:\Users\drag88\AppData\Roaming\Python\Python37\site-packages\jupyter_client\manager.py", line 240, in start_kernel
self.write_connection_file()
File "C:\Users\drag88\AppData\Roaming\Python\Python37\site-packages\jupyter_client\connect.py", line 547, in write_connection_file
kernel_name=self.kernel_name
File "C:\Users\drag88\AppData\Roaming\Python\Python37\site-packages\jupyter_client\connect.py", line 212, in write_connection_file
with secure_write(fname) as f:
File "C:\Users\drag88\Anaconda3\lib\contextlib.py", line 112, in __enter__
return next(self.gen)
File "C:\Users\drag88\AppData\Roaming\Python\Python37\site-packages\jupyter_client\connect.py", line 100, in secure_write
win32_restrict_file_to_user(fname)
File "C:\Users\drag88\AppData\Roaming\Python\Python37\site-packages\jupyter_client\connect.py", line 53, in win32_restrict_file_to_user
import win32api
ImportError: DLL load failed: The specified procedure could not be found.
Step 2 command: conda activate (location of your env folder)
Step 3 command: python -m ipykernel install --user
Works for Windows.
It looks like you had installed jupyter when there was an issue with its dependencies on Windows. See https://github.com/jupyterlab/jupyterlab/issues/7259 . I ran into the same error.
It should be fixed on conda now, so if you uninstall and reinstall jupyterlab from conda, it should not throw that error anymore.
I battled to get Jupyter working on my Windows 10 office computer for a number of hours. This was after installing Anaconda3. I had versions of Python 2 and 3 installed before. I was getting 'Kernel error' and also had various errors about 'win32api' and 'tornado'
I did many things but in the end main ones that, I think, helped are listed below -
On install, Anaconda3 created a data folder here -
C:\ProgramData\Anaconda3
I gave my user account access to write to this folder, I am not sure if it made a difference.
Elevated to admin, I copied two dll files as below -
pythoncom39.dll
pywintypes39.dll
From -
C:\ProgramData\Anaconda3\Lib\site-packages\pywin32_system32
To -
C:\windows\system32
At the 'Anaconda Prompt', a Windows cmd screen (which was added to my start menu) after the install, I did this -
(base) C:\>conda env create test-env
It created 'test-env' folder at C:\Users\{windows user name}\.conda\envs\test-env
(base) C:\>conda activate "C:\Users\{windows user name}\.conda\envs\test-env"
(test-env) C:\>
Once in this newly created environment, I tried various other things such as these -
conda install jupyter
conda install pywin32
python -m ipykernal install --user
Launching jupyter after loading and setting to this environment now works by using this command -
(test-env) C:\>jupyter notebook
When browser opens, select New>python 3 (ipykernel) from right hand menu to create new notebook.
If you have Python installed on your pc run from cmd or powershell:
pip install jupyterlab
Then you can start it with:
jupyter lab
The installation might have missed some steps which are fixed by post_install.
Go to yout venv's Script directory and run the command
python .\pywin32_postinstall.py -install
Make sure you are running the shell with Admin rights.
This error is sometimes as a result of the deleted environment that was created before. For Windows users, run the following code in cmd
python -m ipykernel install –user
Simply uninstall and install jupyter by first:
#Activate your environment in anaconda prompt (conda activate"path") and then type:-
conda uninstall jupyter
conda install jupyter
I installed jupyter on my macbook pro (10.10), using pip install jupyter, it completed sucessfully. However, when trying to run the
jupyter notebook
command - I get the following errors.
Traceback (most recent call last):
File "/usr/local/bin/jupyter-notebook", line 11, in
sys.exit(main())
File "/Library/Python/2.7/site-packages/jupyter_core/application.py", line 267, in launch_instance
return super(JupyterApp, cls).launch_instance(argv=argv, **kwargs)
File "/Library/Python/2.7/site-packages/traitlets/config/application.py", line 591, in launch_instance
app.initialize(argv)
File "<string>", line 2, in initialize
File "/Library/Python/2.7/site-packages/traitlets/config/application.py", line 75, in catch_config_error
return method(app, *args, **kwargs)
File "/Library/Python/2.7/site-packages/notebook/notebookapp.py", line 1008, in initialize
self.init_terminals()
File "/Library/Python/2.7/site-packages/notebook/notebookapp.py", line 908, in init_terminals
from .terminal import initialize
File "/Library/Python/2.7/site-packages/notebook/terminal/__init__.py", line 3, in <module>
import terminado
File "/Library/Python/2.7/site-packages/terminado/__init__.py", line 7, in <module>
logging.getLogger(__name__).addHandler(logging.NullHandler())
AttributeError: 'module' object has no attribute 'NullHandler'
Can you please advise..
per additional requested info
bash-3.2$ python --version
Python 2.7.10
bash-3.2$ echo $PYTHONPATH
bash-3.2$ which -a python
/usr/bin/python
Simpler installation with Anaconda
An alternative to using pip is Anaconda or Miniconda.
It is great for installing scientific libraries such as Jupyter.
Anaconda
Anaconda is a full distribution of about 200 libraries including Jupyter. Just install it with given instruction as user (not root) and you should be good to go.
Miniconda
Miniconda is smaller. It includes Python and a few essential libraries. If Anconda seems to big, download and install Miniconda. Again, as user not as root.
Then, install Jupyter with:
conda install jupyter
In your case it is complaining to the log file. If you can specify it it should solve the problem, as now it is not finding it.
I have a 32 bit WinXP system that used to run ipython notebook just fine under the Miniconda distribution (Python 3.4). But recently, when I start the ipython notebook interface in the browser I get a kernel error. The console shows a ZMQError. However, I have no issue working from the ipython console or even from inside PyCharm IDE, where python works fine. I am using a virtual environment, and the details about the error are given below:
Traceback (most recent call last):
File "F:\Miniconda3\envs\mltestbed\lib\site-packages\notebook\base\handlers.py", line 436, in wrapper
result = yield gen.maybe_future(method(self, *args, **kwargs))
File "F:\Miniconda3\envs\mltestbed\lib\site-packages\notebook\services\sessions\handlers.py", line 56, in post
model = sm.create_session(path=path, kernel_name=kernel_name)
File "F:\Miniconda3\envs\mltestbed\lib\site-packages\notebook\services\sessions\sessionmanager.py", line 66, in create_session
kernel_name=kernel_name)
File "F:\Miniconda3\envs\mltestbed\lib\site-packages\notebook\services\kernels\kernelmanager.py", line 84, in start_kernel
**kwargs)
File "F:\Miniconda3\envs\mltestbed\lib\site-packages\jupyter_client\multikernelmanager.py", line 109, in start_kernel
km.start_kernel(**kwargs)
File "F:\Miniconda3\envs\mltestbed\lib\site-packages\jupyter_client\manager.py", line 241, in start_kernel
self._connect_control_socket()
File "F:\Miniconda3\envs\mltestbed\lib\site-packages\jupyter_client\manager.py", line 192, in _connect_control_socket
self._control_socket = self.connect_control()
File "F:\Miniconda3\envs\mltestbed\lib\site-packages\jupyter_client\connect.py", line 445, in connect_control
return self._create_connected_socket('control', identity=identity)
File "F:\Miniconda3\envs\mltestbed\lib\site-packages\jupyter_client\connect.py", line 417, in _create_connected_socket
sock = self.context.socket(socket_type)
File "F:\Miniconda3\envs\mltestbed\lib\site-packages\zmq\sugar\context.py", line 143, in socket
s = self._socket_class(self, socket_type)
File "zmq/backend/cython/socket.pyx", line 281, in zmq.backend.cython.socket.Socket.__cinit__ (zmq\backend\cython\socket.c:3220)
zmq.error.ZMQError: Connection refused
In need of help as my system contains a lot of code that would be difficult to port.
I am not sure if this helps you, but there seems to be a similar error experienced by some spyder users. This goes back to a problem in binding to a random port for the notebook server using ZeroMQ (see here). The bug in question seems to be fixed in ZeroMQ, but I am not sure if it has made it's way to the other packages you are using.
You could try to update the version of ipython-notebook you are using:
$ conda update ipython-notebook
and if this doesn't work you could fall back to an older version. Try creating a new environment with an older version to keep your (hopefully soon repaired) environment intact:
$ conda create -n fallback ipython-notebook=3 python=3.4
I hope this helps.