環境說明
Mac + virtualenv + jupyterNotebook
檢視版本
$ python3 --version
$ pip3 --version
$ virtualenv --version
建立環境
在專案主目錄下建立環境在venv
目錄,並啟用環境:
$ virtualenv --system-site-packages -p python3 ./venv
$ source ./venv/bin/activate # sh, bash, ksh, or zsh
如果是在
fish
下執行以上的source
命令,末尾加上.fish
,如:source ./env/bin/acticate.fish
退出環境命令:
(venv) $ deactivate
前面的
(venv)
表示當前的命令列在venv
環境下。
開啟 Jupyter nootbook:
(venv) $ jupyter notebook
這時候瀏覽器會進入localhost:8888
,在 jupyter notebook 中輸入import tensorflow as tf
,執行後報錯:ModuleNotFoundError: No module named 'tensorflow'
現在我們在 jupyter notebook 內新增一個input
程式碼塊(快捷鍵A
)輸入:
!pip3 list
在 Jupyter notebook 程式碼塊中的程式碼前面加
!
表示輸入的是命令。
我們會看到pip3
命令的可安裝包列表,如果裡面沒有tensorflow
我們就需要更新一下本地pip3
安裝包庫,新增程式碼塊並輸入:
!pip3 install -U -i https://pypi.tuna.tsinghua.edu.cn/simple/ tensorflow
其中https://pypi.tuna.tsinghua.edu.cn/simple/
表示清華源,因為使用pip3
原裝的國外源太慢了。
這時候可以看到下載速度飛快,眼看就要成功了,但要注意的是這時候可能會跳出報錯:
ERROR: Cannot uninstall 'wrapt'. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.
碰到這樣的問題我們就執行以下命令:
!pip3 install -U -i https://pypi.tuna.tsinghua.edu.cn/simple/ --ignore-installed wrapt enum34 simplejson netaddr
可能還會遇到一個問題:
ERROR: tensorboard 1.14.0 has requirement setuptools>=41.0.0, but you'll have setuptools 39.1.0 which is incompatible.
原因:setuptools
版本太低
辦法:更新setuptools
版本 輸入!pip install --upgrade setuptools
(記得用國內源)
現在我們就可以順利的裝 Tensorflow 了,再輸入一遍從清華pip3
源獲取tensorflow
包的命令:
!pip3 install -U -i https://pypi.tuna.tsinghua.edu.cn/simple/ tensorflow
檢查下!pip3 list
可以發現安裝包已到手,現在我們執行安裝命令:
!pip3 install tensorflow
愉快的安裝成功!,不過如果以前電腦裡裝了百度的庫paddlepaddle
可能會在這有一條報錯,不礙安裝成功的事:
ERROR: paddlepaddle 1.3.2 has requirement requests==2.9.2, but you'll have requests 2.23.0 which is incompatible.
看起來沒問題了,可以說是裝好了。現在執行一下import tensorflow as tf
執行成功,但可能會有一個小小的提示:
.../python3.6/site-packages/h5py/__init__.py:36: FutureWarning: Conversion of the second argument of issubdtype from `float` to `np.floating` is deprecated. In future, it will be treated as `np.float64 == np.dtype(float).type`.
from ._conv import register_converters as _register_converters
這不妨礙我們,不過想要解決根本問題,那就執行兩條命令:
!pip3 install -U -i https://pypi.tuna.tsinghua.edu.cn/simple/ h5py
!pip3 install h5py
現在再來看import tensorflow as tf
已經沒問題了!
附上程式碼:
import matplotlib as mpl
import matplotlib.pyplot as plt
%matplotlib inline
import numpy as np
import sklearn
import pandas as pd
import os
import sys
import time
import tensorflow as tf
from tensorflow import keras
print(tf.__version__)
print(sys.version_info)
for module in mpl, np, pd, sklearn, tf, keras:
print(module.__name__, module.__version__)
輸出:
2.1.0
sys.version_info(major=3, minor=6, micro=4, releaselevel='final', serial=0)
matplotlib 2.2.3
numpy 1.18.1
pandas 0.22.0
sklearn 0.19.1
tensorflow 2.1.0
tensorflow_core.python.keras.api._v2.keras 2.2.4-tf
Jupyter kernel error 解決方法
在 Anaconda 命令列環境中執行!jupyter kernelspec list
命令檢視 kernel
的位置,再進入安裝的 kernel
目錄,開啟 kernel.json
檔案,檢視 Python
直譯器的路徑是否正確。
pip3
我最不喜歡的就是 pip
和 pip3
兩個 python
版本的 pip
實在是讓人不舒服,我只關心 pip3
。
還是看看國內的「pip映象」吧:
本作品採用《CC 協議》,轉載必須註明作者和本文連結