永发信息网

Mac 上面两个python共存问题

答案:7  悬赏:40  手机版
解决时间 2021-04-06 09:48
Mac 上面两个python共存问题
最佳答案
自己在Windows、linux均可以实现用两个版本的python分别安装pip,然后就可以通过pip-2.7,pip-3.3来区分,
全部回答
一、安装配置pyenv
经常遇到这样的情况:
系统自带的Python是2.x,自己需要Python 3.x,测试尝鲜;
系统是2.6.x,开发环境是2.7.x
由于Mac机器系统保护的原因,默认的Python中无法对PIP一些包升级,需要组建新的Python环境。
此时需要在系统中安装多个Python,但又不能影响系统自带的Python,即需要实现Python的多版本共存。pyenv就是这样一个Python版本管理器。
1、安装pyenv
brew install pyenv
2、根据提示需要添加
if which pyenv > /dev/null; then eval "$(pyenv init -)"; fi
export PYENV_ROOT=/usr/local/var/pyenv
这里注意了,如果使用的zsh,务必不要在zshrc配置里面的插件开启pyenv。会导致终端无限循环退出,只需要在你的zshrc结尾处追加上面两行就行了。笔者亲测。
3、查看当前激活的是那个版本的Python
pyenv version
4、查看已经安装了那些版本的python
pyenv versions
5、安装指定版本的Python
pyenv install 3.5.0
#安装完成后必须rehash
pyenv rehash
6、切换和使用指定的版本Python版本有3种方法:
λ ~/ pyenv
pyenv 20151006
Usage: pyenv <command> [<args>]
Some useful pyenv commands are:
commands列出所有pyenv可用的命令
local 设置或显示本地应用程序特定的Python版本
global设置或显示系统全局的Python版本
shell 设置或显示shell外壳的Python版本
install 使用python-build安装指定Python版本
uninstall 卸载已经安装的Python
rehash刷新 pyenv shims (安装之后运行这个)
version 查看当前使用的版本
versions列出已经安装的Python版本,当前激活版本用*号标注
which 显示的完整路径的可执行文件
whence列出包含给定的可执行所有的Python版本
See `pyenv help <command>' for information on a specific command.
For full documentation, see: https//githubcom/yyuu/pyenv#readme
特别建议:
系统全局用系统默认的Python比较好,不建议直接对其操作
pyenv global system
用local进行指定版本切换,一般开发环境使用。
pyenv local 2.7.10
对当前用户的临时设定Python版本,退出后失效
pyenv shell 3.5.0
取消某版本切换
pyenv local 3.5.0 --unset
优先级关系:shell——local——global
二、利用virtualenv和Virtaulenvwrapper管理虚拟Python环境
virtualenv用于创建独立的Python环境,多个Python相互独立,互不影响,它能够:
在没有权限的情况下安装新套件
不同应用可以使用不同的套件版本
套件升级不影响其他应用
Virtaulenvwrapper是virtualenv的扩展包,用于更方便管理虚拟环境,它可以做:
将所有虚拟环境整合在一个目录下
管理(新增,删除,复制)虚拟环境
切换虚拟环境
1、安装和使用方法
#安装
pip install virtualenv
pip install virtualenvwrapper
#创建虚拟环境
mkvirtualenv [虚拟环境名称]
此时还不能使用virtualenvwrapper,默认virtualenvwrapper安装在/usr/local/bin下面,实际上你需要运行virtualenvwrapper.sh文件才行,先别急,打开这个文件看看,里面有安装步骤,我们照着操作把环境设置好。
如果你使用的bash或者zsh
#创建目录用来存放虚拟环境
mkdir $HOME/.virtualenvs
#在. bash_profile 或者 .zshrc 追加两行
export WORKON_HOME=$HOME/.virtualenvs
source /usr/local/bin/virtualenvwrapper.sh
运行:
source ~/.bashrc
source ~/.zshrc
此时virtualenvwrapper就可以使用了。
2、创建虚拟环境例如:
#在当前的环境的Python版本下创建名称为py3dev的虚拟环境。
mkvirtualenv py3dev
默认情况下,虚拟环境会依赖系统环境中的site packages,就是说系统中已经安装好的第三方package也会安装在虚拟环境中,如果不想依赖这些package,那么可以加上参数 –no-site-packages建立虚拟环境
例如:
mkvirtualenv --no-site-packages [虚拟环境名称]
mkvirtualenv --no-site-packages py3dev
3、查看创建的虚拟环境:
λ ~/ lsvirtualenv
py2dev
======
py3dev
======
λ ~/ workon
py2dev
py3dev
4、启动某虚拟环境:
works [虚拟环境名称]
workon py3dev
5、删除某个虚拟环境:
rmvirtualenv [虚拟环境名称]
rmvirtualenv py3dev
6、删除某个虚拟环境需要先退出这个环境
deactivate
三、融合 pyenv、virtualenv、Virtaulenvwrapper 管理Python版本和虚拟环境
如何对Python2.7.10和Python3.5.0版本分别创建虚拟环境?
有这三个工具其实非常简单,主要是确保环境切换成功后在创建虚拟环境。
#确保切换成功,我建议 source .zshrc 一下在切换
#安装全新的Python2.7.10版本
pyenv install 2.7.10
pyenv rehash
#切换到刚安装的这个版本
pyenv local 2.7.10
#确保切换成功
source .zshrc
#验证一下版本,pip发现里面包很少
pip list
#验证版本
python -V
#务必在这个新的2.7.10中安装
pip install virtualenv
pip install virtualenvwrapper
#务必
source .zshrc
#创建2.7.10的开发环境
mkvirtualenv py2dev
#创建完某版本的开发环境后务必退出,当前虚拟环境,不然就是虚拟环境中在创建了。
deactivate
#退出2.7.10环境
pyenv local --unset 2.7.10
source .zshrc
3.5.0的虚拟环境创建也是一样,因此验证2.7.10和3.5.0的虚拟环境
(py3dev)☁~deactivate
☁~workon py2dev
(py2dev)☁~python -V
Python 2.7.10
(py2dev)☁~deactivate
☁~workon py3dev
(py3dev)☁~python -V
Python 3.5.0
(py3dev)☁~deactivate
☁~
至今没找到切换Python版本的时候要加载 source .zshrc。经过无数次试验,结果是务必这么干,不知道为什么。
#愉快无痛升级,一键升级所有PIP包
pip list --outdated | grep '^[a-z]* (' | cut -d " " -f 1 | xargs pip install -U
网友你好,真想问你一句,好好的苹果机为啥装那么垃圾的系统呢。就算是正版也要700块。
方法一:无视他
方法二:修改你pip.conf的内容,具体怎么修改,百度最新的文章只要是一年以内的,一般都行的通
我装了2.7,3.6两个版本是没有问题的。

没遇到过类似错误,但网上有很多类似答案,
比如知乎:网页链接
给个思路,安装一个官方的包,安装一个anancode
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
启动微信时里面的地球跟小人是什么意思?
房子经房产中介转让需要什么手续
白羊是不是很喜欢自由
华硕eee pad tft 101 标配有那些?算机器.
认识是一种感觉,后来却成为习惯.最后却变了
有没有人有过读过大学之后再回去读高中的?
判断题发往丰都鬼城的旅游车是在下午2小时开
班训是什么意思
近期国内有什么样的绘画素描比赛,在什么地区
油菜花开在什么季节,潼南菜花节的图片展示
深圳到海南的汽车有哪些啊?我住在深圳公明,
EPON和GPON的分光比分别是多少
高效液相色谱常用哪些检测器
济南哪儿卖冷冻鸽子得
渭南盛世华府鸿基是不是坑钱
推荐资讯
口袋中有15个黑球,13个白球和10个红球,至少
常用书法名句四字,有什么关于书法的名言
亲情陪伴的优美段落,富有哲理性并且优美的段
艾种植方法
2015年7月16号到2016年2月6号是几天
电信如何查每个应用使用流量的情况
单选题Ifyouarehungry,youcanbuyfood
新手提问,璐璐的被动可以触发冰杖的效果么
终极笑园小说txt全集免费下载
生娃儿送了东西满月还需要赶礼吗?
为什么我买的可莱丝面膜和朋友在韩国买的最新
驴和鹿什么更有市场价值
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?