turi的网站有一份安装指南,但是由于给出的时间较早,安装过程并不能顺利完成,在此分享一下我的踩坑记录(运行环境为MacOs)。
turi给的一键安装程序貌似由于ssl错误并不能顺利运行,因此我选择命令行安装方式。
以下为官方安装说明,我会针对坑点做说明。
Step 0: 网络环境准备
最好有一个梯子。因为国内的网络进行命令行安装的时候经常出现网络错误导致安装失败。如果使用ss类socks5代理的话,下面的命令可能会有帮助。
代理设置
export all_proxy=socks5://127.0.0.1:port
//port根据自身情况填写
查看当前使用代理
set | grep -i all_proxy
测试代理是否成功
curl -i http://ip.cn
取消代理
unset all_proxy && unset ALL_PROXY
Step 1: Download Anaconda2 v4.0.0
下载就行
Step 2: Install Anaconda
# Run Anaconda2 v4.0.0 installer.
bash /path to download file/Anaconda2-4.0.0-MacOSX-x86_64.sh
此步最好使用代理。其他没有坑点。
Step 3: Create conda environment
# Create a new conda environment with Python 2.7.x
conda create -n gl-env python=2.7 anaconda=4.0.0
# Activate the conda environment
source activate gl-env
注意点同上一步
此处是生成一个名为 gl-env
的虚拟环境,以下的操作都在此环境下运行。如果安装过程中断,重开窗口继续的时候不要忘了先激活环境。
Step 4: Ensure pip version >= 7
# Ensure pip is updated to the latest version# miniconda users may need to install pip first, using 'conda install pip'
conda update pip
此处有一个坑点,在下一步安装GraphLab的时候可能会发生有些依赖包已经存在于系统的情况。而有些包是distutils installed project
,使用较高版本的pip无法卸载,会导致安装暂停。
一种办法是在此处跳过pip更新,安装完成后再更新。先用
pip -V
检查下pip版本,>=7就好。如果不满足要求,就用
pip install pip == 9.0.1
更新下。如果报错 Missing dependencies for SOCKS support.
请参考下文。
还有一种办法是在下一步的命令中加入 --ignore-installed
参数,跳过已经安装的包。
Step 5: Install GraphLab Create
# Install your licensed copy of GraphLab Create
pip install --upgrade --no-cache-dir https://get.graphlab.com/GraphLab-Create/2.1/your registered email address here/your product key here/GraphLab-Create-License.tar.gz
如果上一步没有跳过pip更新,记得加入--ignore-installed
如果已经开启代理,记得使用
unset all_proxy && unset ALL_PROXY
命令关掉代理,然后使用
pip install pysocks
安装一个代理工具包,否则会报错 Missing dependencies for SOCKS support.
安装完成后使用之前的命令开启代理再进行本步的安装。
Step 4: Ensure installation of IPython and IPython Notebook
# Install or update IPython and IPython Notebook
conda install ipython-notebook
无坑点,安装完成
Step 5: 运行
每次新打开 terminal
窗口后先输入
source activate gl-env
加载虚拟环境。然后
jupyter notebook
如果不加载虚拟环境,在使用
import graphlab
时会出现no module named graphlab
报错。这是因为之前的graphlab装在这个虚拟环境里,如果不激活无法在外面的环境调用。
网友评论