我正在尝试做一些深度学习的工作。为此,我首先在 Python 环境中安装了所有用于深度学习的软件包。
这是我所做的。
在 Anaconda 中,我创建了一个名为的环境,tensorflow如下所示
tensorflow
conda create -n tensorflow
然后在其中安装了数据科学 Python 包,如 Pandas、NumPy 等。我还在那里安装了 TensorFlow 和 Keras。以下是该环境中的包列表
(tensorflow) SFOM00618927A:dl i854319$ conda list # packages in environment at /Users/i854319/anaconda/envs/tensorflow: # appdirs 1.4.3 <pip> appnope 0.1.0 py36_0 beautifulsoup4 4.5.3 py36_0 bleach 1.5.0 py36_0 cycler 0.10.0 py36_0 decorator 4.0.11 py36_0 entrypoints 0.2.2 py36_1 freetype 2.5.5 2 html5lib 0.999 py36_0 icu 54.1 0 ipykernel 4.5.2 py36_0 ipython 5.3.0 py36_0 ipython_genutils 0.2.0 py36_0 ipywidgets 6.0.0 py36_0 jinja2 2.9.5 py36_0 jsonschema 2.5.1 py36_0 jupyter 1.0.0 py36_3 jupyter_client 5.0.0 py36_0 jupyter_console 5.1.0 py36_0 jupyter_core 4.3.0 py36_0 Keras 2.0.2 <pip> libpng 1.6.27 0 markupsafe 0.23 py36_2 matplotlib 2.0.0 np112py36_0 mistune 0.7.4 py36_0 mkl 2017.0.1 0 nbconvert 5.1.1 py36_0 nbformat 4.3.0 py36_0 notebook 4.4.1 py36_0 numpy 1.12.1 <pip> numpy 1.12.1 py36_0 openssl 1.0.2k 1 packaging 16.8 <pip> pandas 0.19.2 np112py36_1 pandocfilters 1.4.1 py36_0 path.py 10.1 py36_0 pexpect 4.2.1 py36_0 pickleshare 0.7.4 py36_0 pip 9.0.1 py36_1 prompt_toolkit 1.0.13 py36_0 protobuf 3.2.0 <pip> ptyprocess 0.5.1 py36_0 pygments 2.2.0 py36_0 pyparsing 2.1.4 py36_0 pyparsing 2.2.0 <pip> pyqt 5.6.0 py36_2 python 3.6.1 0 python-dateutil 2.6.0 py36_0 pytz 2017.2 py36_0 PyYAML 3.12 <pip> pyzmq 16.0.2 py36_0 qt 5.6.2 0 qtconsole 4.3.0 py36_0 readline 6.2 2 scikit-learn 0.18.1 np112py36_1 scipy 0.19.0 np112py36_0 setuptools 34.3.3 <pip> setuptools 27.2.0 py36_0 simplegeneric 0.8.1 py36_1 sip 4.18 py36_0 six 1.10.0 <pip> six 1.10.0 py36_0 sqlite 3.13.0 0 tensorflow 1.0.1 <pip> terminado 0.6 py36_0 testpath 0.3 py36_0 Theano 0.9.0 <pip> tk 8.5.18 0 tornado 4.4.2 py36_0 traitlets 4.3.2 py36_0 wcwidth 0.1.7 py36_0 wheel 0.29.0 <pip> wheel 0.29.0 py36_0 widgetsnbextension 2.0.0 py36_0 xz 5.2.2 1 zlib 1.2.8 3 (tensorflow) SFOM00618927A:dl i854319$
您可以看到jupyter也已安装。
jupyter
现在,当我在此环境中打开 Python 解释器并运行基本的 TensorFlow 命令时,一切正常。但是,我想在 Jupyter 笔记本中做同样的事情。因此,我创建了一个新目录(在此环境之外)。
mkdir dl
在那里,我激活了tensorflow环境
SFOM00618927A:dl i854319$ source activate tensorflow (tensorflow) SFOM00618927A:dl i854319$ conda list
我可以在其中看到相同的包列表。
现在,我打开一个 Jupyter 笔记本
SFOM00618927A:dl i854319$ source activate tensorflow (tensorflow) SFOM00618927A:dl i854319$ jupyter notebook
它会在浏览器中打开一个新的笔记本。但是当我在其中导入基本的 Python 库(如 pandas)时,它会显示“没有可用的包”。我不确定为什么当同一个环境包含所有这些包并且位于同一个目录中时,如果我使用 Python 解释器,它会显示所有包。
import pandas --------------------------------------------------------------------------- ModuleNotFoundError Traceback (most recent call last) <ipython-input-4-d6ac987968b6> in <module>() ----> 1 import pandas ModuleNotFoundError: No module named 'pandas'
为什么 jupyter notebook 没有选择这些模块?
因此,Jupyter 笔记本不显示 env 作为解释器
您的问题可能是由于 Jupyter Notebook 没有使用您创建的 tensorflow 环境作为内核。以下步骤可以帮助解决此问题:
首先,确保在 tensorflow 环境中已经安装了 Jupyter Notebook。可以在 tensorflow 环境中运行以下命令以安装 Jupyter Notebook:
(tensorflow) $ conda install jupyter
ipykernel
为了让 Jupyter Notebook 识别 tensorflow 环境,您需要安装 ipykernel,并将该环境添加为 Jupyter Notebook 的内核。可以通过以下命令完成此操作:
(tensorflow) $ python -m ipykernel install --user --name tensorflow --display-name "Python (tensorflow)"
此命令会将 tensorflow 环境添加为 Jupyter 内核选项,display-name 为 “Python (tensorflow)”。这样,您可以在 Jupyter Notebook 中选择该环境作为内核。
display-name
重新启动 Jupyter Notebook:
(tensorflow) $ jupyter notebook
打开笔记本后,点击 Kernel -> Change Kernel,然后选择 "Python (tensorflow)"。这会使 Jupyter Notebook 使用 tensorflow 环境中的库和 Python 解释器。
"Python (tensorflow)"
在新的笔记本单元格中运行以下代码以验证:
import pandas as pd import tensorflow as tf print("Pandas version:", pd.__version__) print("TensorFlow version:", tf.__version__)
如果成功,则会显示 Pandas 和 TensorFlow 的版本信息。这样应该可以解决您的问题。