系统有9个地方安装了Python,准备删除其中的一些。
第一步:先把Library里面的用pkg安装的版本删掉。
第二步:用brew uninstall python 删除python2和python3,这两个Python位于usr/local/Cellar文件夹中。
第三步:现在除了系统自带的,还有4个。之前我为了区分两个版本,弄了一个anaconda,一个anaconda3,在anaconda3里面,又搞了个虚拟版本的2和3。
试了下用brew uninstall anaconda ,失败!
第四步:不知道怎么办,就直接在文件夹里删除了这两个文件夹,太暴力了,但是效果显著!
现在系统只剩一个自带的python了。
接着打算用pyenv+pipenv进行环境控制和版本控制。
pipenv是项目环境管理工具,pyenv是项目版本管理工具。
然后安装pip 用 brew install pip和brew install python@2
Python has been installed as
/usr/local/bin/python3
Unversioned symlinks `python`, `python-config`, `pip` etc. pointing to
`python3`, `python3-config`, `pip3` etc., respectively, have been installed into
/usr/local/opt/python/libexec/bin
If you need Homebrew's Python 2.7 run
brew install python@2
You can install Python packages with
pip3 install <package>
They will install into the site-package directory
/usr/local/lib/python3.7/site-packages
You can install Python packages with
pip install <package>
They will install into the site-package directory
/usr/local/lib/python2.7/site-packages
现在就是说用pip就是指2.7版本,用pip3就是3.7版本。
Describe my laptop environment:
OS Type: macOS Mojave 10.14.5
python versions:
python 3 '/usr/local/Cellar/python/3.7.4/Frameworks/Python.framework/Versions/3.7/lib/python3.7/lib-dynload'
python 2
'/usr/local/Cellar/python@2/2.7.16/Frameworks/Python.framework/Versions/2.7/lib/python2.7',
上面的都是废话
然后开始安装pipenv,安装pipenv的时候又出现了问题:Your Pipfile requires python_version 2.7, but you are using None.
我看了下相关issue,说是Home brew安装的python很容易出问题,特别在虚拟环境下,虚拟环境的版本指向的版本可能已经不存在了,就会导致这个错误。
所以我又卸载掉了orzzzzz,感觉一直都在安装卸载。
现在又只剩系统自带的Python 2.7.10了。
然后用pyenv安装2.7.16和3.7.4
pyenv --version :1.2.13
HuizhiXu:~ Huizhi$ pyenv versions
* system (set by /Users/Huizhi/.pyenv/version)
2.7.16
3.7.4
切换版本
pyenv global 2.7.16
HuizhiXu:~ Huizhi$ pyenv versions
system
* 2.7.16 (set by /Users/Huizhi/.pyenv/version)
3.7.4
继续安装pipenv
brew install pipenv
pipenv install
出现错误
dyld: Library not loaded: @executable_path/../.Python
Referenced from: /usr/local/Cellar/pipenv/2018.11.26_2/libexec/bin/python3.7
Reason: image not found
Abort trap: 6
这个错误的原因是虚拟环境。
This error occurs because your virtual environment has broken symlinks.
然后又是一通操作,各种看github的issue和stackoverflow,然后继续运行pipenv install的时候错误就变成了ERROR: ERROR: No matching distribution found for navigator-updater==0.1.0,我就一个一个手动的把不匹配的项在Pipfile注释掉,直到最后,没有这类错误了。
但是,又出现一个耗时太久的错误。pipenv.patched.notpip._vendor.urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host='files.pythonhosted.org', port=443): Read timed out.
采取了两个措施:
第一,因为我Pipfile里面要安装的包太多了,我删除了一些。
第二,我把里面的url换成了国内源,听说这样会快一些。
阿里云:http://mirrors.aliyun.com/pypi/simple/
豆瓣:http://pypi.douban.com/simple/
清华大学:https://pypi.tuna.tsinghua.edu.cn/simple/
中国科学技术大学:https://pypi.mirrors.ustc.edu.cn/simple/
最后,终于成功了!
HuizhiXu:~ Huizhi$ pipenv install
Pipfile.lock not found, creating…
Locking [dev-packages] dependencies…
Locking [packages] dependencies…
✔ Success!
Updated Pipfile.lock (ff009f)!
Installing dependencies from Pipfile.lock (ff009f)…
🐍 ▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉ 16/16 — 00:00:13
To activate this project's virtualenv, run pipenv shell.
Alternatively, run a command inside the virtualenv with pipenv run.