python版本管理

Mac上自带python版本为python2.7,可以利用python命令直接查看。由于Mask RCNN模型的训练要求python3.4+版本,周一时我用homebrew安装了一个python3.7版本,并基于该版本利用pip3命令安装了许多第三方包,pip3安装的软件包可在/usr/local/lib/python3.7/site-packages中查看,与此类似,pip安装的软件包在/usr/local/lib/python2.7/site-packages中查看,不同版本的pip安装的第三方包完全独立于两个目录中,不能相互依赖。总结一下昨天遇到的几个问题并给出解决方案。

1. python3.7的bin目录丢失,由于此时的python3、pip3等指令均依赖于python3.7,因此使用这些指令以及与此相关的第三方包时均报错:坏解释器,找不到/usr/local/Cellar/python/3.7/bin,尝试了以下方法:

  • 使用brew uninstall python3卸载python3.7,指令报错原因是许多软件包依赖于python3.7不能删除;于是brew uninstall python3 --ignore-dependencies,但此时会报directory not empty的错误,这个错误是由于删除时涉及到某些根目录下的操作。

  • 为了不重新安装依赖python3.7的软件包,将目前的/usr/local/Cellar/python目录下的3.7重命名为3.7_backup,并将/usr/local/lib下的python3.7也重新命名为python3.7_backup,同时删除/usr/local/bin下python3指令的软链接,此时brew install python3便不会检测到本机已安装python3.7,而是会重新安装。确认安装无误后可以将backup包删除,在根目录下无法删除,可以移到主目录下删除。

2. python3.7重新安装后利用virtualenv安装tensorflow,https://www.tensorflow.org/install/install_mac#python_34_35_or_36,virtualenv会利用现有的python3.7版本在创建的目录下虚拟python3.7的环境,安装的tensorflow基于python3.7,但是此时发现pip3 install --upgrade tensorflow报错找不到要求版本的tensorflow,尝试以下方法:

  • 由于本机上还有python2.7,于是利用python2.7重新安装虚拟环境以及tensorflow,此时的代码是跑在python2上的,但是发现mask rcnn中很多是python3的代码,报错,此方法不行。

  • python3.7无法安装tensorflow的原因猜测是因为python3.7太新,目前的tensorflow还不支持python3.7,在官网上只找到3.5、3.6对应版本,因此卸载python3.7,回退到3.6。

  • 为了前后一致,仍然利用homebrew安装python3.6,但是brew install默认安装的是最新版本,最终参考该方法安装python3.6:https://www.jianshu.com/p/aadb54eac0a8。

你可能感兴趣的:(机器学习)