jupyter lab无法导入graphviz模块(配置环境变量/更改下载源/更新conda版本/graphviz>>python-graphviz)

刚刚学习,有很多不明白的地方,没有任何依据就直接去尝试了很多操作,结果就是给自己制造了很多麻烦,下面是针对自己的情况整理的“瞎搞”全过程。
希望可以给大家提供一个警示作用,以及非常期待童鞋们指点,一下任何操作行为和操作思路上的问题!非常感谢!!

1. 问题描述

更新anaconda发现包的版本发生回滚现象,重新更新结束后,可以正常使用,通过homebrew安装graphviz后,无法使用jupyter lab导入包

2. 尝试操作

尝试了4个操作,最后一个(4)解决问题,中间步骤存在疑问,欢迎围观解疑!

(1)配置环境变量——无效
首先想到的是配置环境变量,因为有可能是graphviz的bin无法被anaconda找到;虽然当时在安装的时候没有发生任何问题,也没有尝试更改路径(anaconda安装也是默认路径)

# 查看环境变量
$ echo $PATH
/anaconda3/bin:/anaconda3/condabin:/Library/Frameworks/Python.framework/Versions/3.7/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

# 找到graphviz的bin地址
$ pwd
/usr/local/Cellar/graphviz/2.40.1_1/bin

# 编辑配置文件
$ sudo vim .bash_profile
进入配置文件编辑界面,点击"i"进入输入模式:
$ export PATH=/usr/local/Cellar/graphviz/2.40.1_1/bin:$PATH
点击"esc"并输入":wq"保存并退出
$ source .bash_profile

添加好之后,重新检查环境变量,发现在路径最开始又重新添加了一遍“/usr/local/bin:”

$ echo $PATH
/usr/local/bin:/anaconda3/bin:/anaconda3/condabin:/Library/Frameworks/Python.framework/Versions/3.7/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

关闭终端,再查看,以上操作全部消失~~~

  • 可以理解,环境变量中有两个“/usr/local/bin:”系统可能自动保存成一个,但是graphviz的bin的路径明明不是“/usr/local/bin:”却在添加之后,转换成又添加了一个“/usr/local/bin:”在文件开始

(2) 使用conda install graphviz重新安装——无效(因为自己环境之前恢复成功,只是“看上去”包版本的环境一致而已)
实在无法确认为什么homebrew安装好的graphviz无法使用,所以想到直接使用conda安装,但是操作多次,都卡在Solving environment步骤上,几十分钟也不返回结果。

(3)增加了conda的下载源,并重新更新conda——Solving environment返回“文件冲突”

# 增加下载源
$ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
$ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
$ conda config --set show_channel_urls yes

# 更新conda 
$ conda update conda

Collecting package metadata (repodata.json): done
Solving environment: failed
Initial quick solve with frozen env failed.  Unfreezing env and trying again.
Solving environment: failed

UnsatisfiableError: The following specifications were found to be incompatible with each other:

ackage mkl-service conflicts for:
anaconda==5.3.0=py37_0 -> mkl-service==1.1.2=py37h6b9c3cc_5
Package jupyterlab conflicts for:
_ipyw_jlab_nb_ext_conf -> jupyterlab
jupyterlab==0.35.1

没有给出 "package plan"所以不知道要怎么解决冲突问题。尝试去官网的包列表(https://docs.continuum.io/anaconda/packages/pkg-docs/)
找不同环境中对应的包版本,想试图发现两个冲突的文件中,哪一个是有问题的。无解,因为a. 该列表中列出的是当前环境中包的最新版本
b. 同一个包的同一个版本其实是可以匹配不同环境的
所以,无法确认自己要如何解决“文件冲突”问题。
但是至少可以知道,之前的更新操作虽然重新更新了,但是还有存在隐患,之后要注意环境保护和环境管理

(4)重新更新anaconda后,使用conda install python-graphviz命令代替conda install graphviz-------成功
在更新anaconda的时候,由于我添加了新的下载源,所以提示:

$ conda update anaconda
没有提示有“文件冲突”的问题,直接给出了“Package Plan”
The following packages will be downloaded:       # Channel不再是defaults
The following packages will be UPDATED:
The following packages will be SUPERSEDED by a higher-priority channel

更新完成后,再查看包列表时,Channel已经变成新增的下载源。更新完成后,从新安装了graphviz并且尝试使用,就此问题全部解决。

  • 但是,仍然存在一个疑问:为什么我在查看官网包列表的时候,3.7版本中明明就有graphviz安装(之前的没有)为什么使用conda install graphviz无法操作,一定要使用python-graphviz。是否和我下载源有关?我并没有去我新增的下载源查看它所支持的graphviz包名字是什么,猜想是不是可能改成了python-graphviz?

-THE END

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值