简体   繁体   中英

Unable to import tensorflow in Jupyter notebook

I am running Ubuntu 16.04.3 LTS amazon deep learning AMI. I am using inbuilt tensorflow_p36 (python 3.6) virtual environment.

I tried following commands to check if the installations are working fine. Got the hint from this question's answers .

(tensorflow_p36) ubuntu@ip:~/Notebooks$ which python
/home/ubuntu/anaconda3/envs/tensorflow_p36/bin/python
(tensorflow_p36) ubuntu@ip:~/Notebooks$ which ipython
/home/ubuntu/anaconda3/envs/tensorflow_p36/bin/ipython
(tensorflow_p36) ubuntu@ip:~/Notebooks$ which jupyter
/home/ubuntu/anaconda3/envs/tensorflow_p36/bin/jupyter

When I import tensorflow in terminal using python, it works just fine, but when I import it in Jupyter notebook, I get the following error:

---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
~/anaconda3/envs/tensorflow_p36/lib/python3.6/site-packages/tensorflow/python/pywrap_tensorflow.py in <module>()
     57 
---> 58   from tensorflow.python.pywrap_tensorflow_internal import *
     59   from tensorflow.python.pywrap_tensorflow_internal import __version__

~/anaconda3/envs/tensorflow_p36/lib/python3.6/site-packages/tensorflow/python/pywrap_tensorflow_internal.py in <module>()
     27             return _mod
---> 28     _pywrap_tensorflow_internal = swig_import_helper()
     29     del swig_import_helper

~/anaconda3/envs/tensorflow_p36/lib/python3.6/site-packages/tensorflow/python/pywrap_tensorflow_internal.py in swig_import_helper()
     23             try:
---> 24                 _mod = imp.load_module('_pywrap_tensorflow_internal', fp, pathname, description)
     25             finally:

~/anaconda3/envs/tensorflow_p36/lib/python3.6/imp.py in load_module(name, file, filename, details)
    242         else:
--> 243             return load_dynamic(name, filename, file)
    244     elif type_ == PKG_DIRECTORY:

~/anaconda3/envs/tensorflow_p36/lib/python3.6/imp.py in load_dynamic(name, path, file)
    342             name=name, loader=loader, origin=path)
--> 343         return _load(spec)
    344 

ImportError: libcublas.so.8.0: cannot open shared object file: No such file or directory

During handling of the above exception, another exception occurred:

ImportError                               Traceback (most recent call last)
<ipython-input-2-d6579f534729> in <module>()
----> 1 import tensorflow

~/anaconda3/envs/tensorflow_p36/lib/python3.6/site-packages/tensorflow/__init__.py in <module>()
     22 
     23 # pylint: disable=wildcard-import
---> 24 from tensorflow.python import *
     25 # pylint: enable=wildcard-import
     26 

~/anaconda3/envs/tensorflow_p36/lib/python3.6/site-packages/tensorflow/python/__init__.py in <module>()
     47 import numpy as np
     48 
---> 49 from tensorflow.python import pywrap_tensorflow
     50 
     51 # Protocol buffers

~/anaconda3/envs/tensorflow_p36/lib/python3.6/site-packages/tensorflow/python/pywrap_tensorflow.py in <module>()
     70 for some common reasons and solutions.  Include the entire stack trace
     71 above this error message when asking for help.""" % traceback.format_exc()
---> 72   raise ImportError(msg)
     73 
     74 # pylint: enable=wildcard-import,g-import-not-at-top,unused-import,line-too-long

ImportError: Traceback (most recent call last):
  File "/home/ubuntu/anaconda3/envs/tensorflow_p36/lib/python3.6/site-packages/tensorflow/python/pywrap_tensorflow.py", line 58, in <module>
    from tensorflow.python.pywrap_tensorflow_internal import *
  File "/home/ubuntu/anaconda3/envs/tensorflow_p36/lib/python3.6/site-packages/tensorflow/python/pywrap_tensorflow_internal.py", line 28, in <module>
    _pywrap_tensorflow_internal = swig_import_helper()
  File "/home/ubuntu/anaconda3/envs/tensorflow_p36/lib/python3.6/site-packages/tensorflow/python/pywrap_tensorflow_internal.py", line 24, in swig_import_helper
    _mod = imp.load_module('_pywrap_tensorflow_internal', fp, pathname, description)
  File "/home/ubuntu/anaconda3/envs/tensorflow_p36/lib/python3.6/imp.py", line 243, in load_module
    return load_dynamic(name, filename, file)
  File "/home/ubuntu/anaconda3/envs/tensorflow_p36/lib/python3.6/imp.py", line 343, in load_dynamic
    return _load(spec)
ImportError: libcublas.so.8.0: cannot open shared object file: No such file or directory


Failed to load the native TensorFlow runtime.

See https://www.tensorflow.org/install/install_sources#common_installation_problems

for some common reasons and solutions.  Include the entire stack trace
above this error message when asking for help.

Can someone help me out in solving this error?

I had the same issue when I was trying to run my GPU-enabled Tensorflow on my Jupyter notebook. I had to fix two things, maybe they help you too.

Jupyter Kernel

Make sure that your jupyter kernel is the same as your venv/python environment you expect to run. You can find that out by running

$ jupyter kernelspec list

If it's not (mine was pointing to .local/share/jupyter/kernels/), then there are two ways of fixing it.

1) You can edit the kernel.json file to point to your desired python:

$ vim jupyter/kernels/python2/kernel.json

2) You can remove the default kernel from your venv by running:

$ jupyter kernelspec remove python2

This will default to using the desired python on your venv.

Tensorflow Setup error

The pywrap import error is a knwon issue. . Because I didn't want to meddle with my installation (as it worked fine on python CLI, just not on Jupyter), the only suggestion that worked for me was to:

$ export PBR_VERSION=<your pbr version number>

This seems to be an issue with the setup.cfg of mock, which might be solved in a later release.

Finally, make sure that tensorflow-gpu is added to your system path

Goodluck!

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM