问题:今天安装了tensorflow,启动ipython竟然提示如下:
In [1]: import tensorflow as tf
---------------------------------------------------------------------------
ModuleNotFoundError Traceback (most recent call last)
<ipython-input-1-64156d691fe5> in <module>
----> 1 import tensorflow as tfModuleNotFoundError: No module named 'tensorflow'
所以解决的方向有两个:①tensorflow安装有问题;②ipython环境有问题。
用python启动一个shell,导入tensorflow没有问题,说明tensorflow安装没有问题,那就是ipython的问题
查看ipython版本
Python 3.7.1 (default, Dec 10 2018, 22:54:23) [MSC v.1915 64 bit (AMD64)]
Type 'copyright', 'credits' or 'license' for more information
IPython 7.2.0 -- An enhanced Interactive Python. Type '?' for help.
明明是3.5.2版本,怎么会是3.7.1呢,除非这个ipyton启动的不是本虚拟环境中的python,
(tensorflow) λ which ipython
/c/ProgramData/Anaconda3/envs/tensorflow/Scripts/ipython
果然是base环境中的ipython,在通过conda list发现本虚拟环境tensorflow中没有ipython,到此问题就清楚了,虚拟环境tensorflow中没有ipython,然后就近在base中找到一个ipython就启动了base中的python了,那么就要在虚拟环境tensorflow中安装一个ipython,在线安装很简单,但是存在无法指定具体python版本问题,所以采用conda install离线安装。
python环境是3.5.2,所以要找一个可以启动3.5.2的ipython。
https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/win-64/
conda install --use-local ipython-5.1.0-py35_2.tar
#结果
ipython 5.1.0 py35_2 <unknown>
再次启动ipython提示缺包,直接在线装就行了。
装完后启动ipthon,导入tensoflow成功。
(tensorflow) λ ipython
Python 3.5.2 | packaged by conda-forge | (default, Jan 19 2017, 15:41:23) [MSC v.1900 64 bit (AMD64)]
Type "copyright", "credits" or "license" for more information.IPython 5.1.0 -- An enhanced Interactive Python.
? -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help -> Python's own help system.
object? -> Details about 'object', use 'object??' for extra details.In [1]: import tensorflow as tf
ipython启动的就是本环境中的python3.5.2,完成。
-----------------------------------------------------------------------------------------------------
后来发现直接在当前的虚拟环境中conda install ipython即可安装当前环境的ipython,前面是比较笨的方式。