鱼C论坛

 找回密码
 立即注册
查看: 1270|回复: 13

[已解决]请教大佬一个关于linux下pyenv管理python的问题

[复制链接]
发表于 2018-2-11 22:16:02 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
我用的是CentOS 6.9版本,自带的2.6版本python。我用pyenv安装了2.7.6和3.6.4的python,有几个问题搞不明白了。
1. 使用pyenv golbal +版本号应该能切换全局python版本,但是我在使用的时候发现,只能使用pyenv local+版本切换,golbal无法实际切换(见图1)
2. 在无法全局切换的前提下,使用local切换到3.6.4下安装pip,(使用wget --no-check-certificate https://bootstrap.pypa.io/get-pip.py 的到get-pip.py文件,然后python get-pip.py安装),发现安装到了2.6版本的python里去了。我想请问下,在linux下有多个python版本的情况下,怎样使用pip把想要的模块安装到指定的python版本里?
global.png
pip.png
最佳答案
2018-2-12 15:15:24
你的截图上面的历史命令部分我看不到,我只能这样解释一下
pyenv如果直接装在root目录下是很难受的
从你给出的截图部分来看,你似乎一直在root的~目录下操作
pyenv的local环境是可以覆盖global环境的,一旦你在当前目录下设立了一个local的python环境,那么当你用pyenv version或者
pyenv versions命令时显示的也就是当前所激活的local环境,global环境是不显示的
如果你要查看当前的global环境,应该使用pyenv global命令,后面不要跟任何参数

所以,看你的截图我没法判断pyenv global是不是正常地改变了global环境,你可以试试这几种操作:
1. cd到另一个目录(不可以是/root下的子目录,因为你已经设了一个local环境了,所有子目录都会被覆盖到),然后尝试用pyenv global改变global环境
2. 删除当前目录下存放local环境信息的 .python-version 文件(注意前面的小点,属于隐藏的配置类文件),保证root用户环境干净
3. 尝试重新安装配置pyenv(建议放在个人用户home目录下),按github上开发人员官方给出的步骤来配置,并修改.bashrc文件

pyenv install安装的python自带pip的,应该没必要再用get-pip.py来装了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-2-12 07:16:05 | 显示全部楼层
干脆就把2删了,要什么2有啥用,留着它,以后还会出一些莫名其妙的错误。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-2-12 08:27:30 | 显示全部楼层
新手·ing 发表于 2018-2-12 07:16
干脆就把2删了,要什么2有啥用,留着它,以后还会出一些莫名其妙的错误。

不行啊,系统里面很多命令都是基于2实现的,比如yum管理之类,第一次我就是强行用3.6.4把2.6覆盖掉了,然后发现yum无法使用,只能重做系统。这些linux系统只要一天不用3重写,2就得一直带着,要不干嘛废那么多劲想办法装多python版本还得费劲巴拉的给他们各自整pip。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-2-12 12:13:09 | 显示全部楼层
天圆突破 发表于 2018-2-12 08:27
不行啊,系统里面很多命令都是基于2实现的,比如yum管理之类,第一次我就是强行用3.6.4把2.6覆盖掉了,然 ...

受教。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-2-12 12:13:10 | 显示全部楼层
天圆突破 发表于 2018-2-12 08:27
不行啊,系统里面很多命令都是基于2实现的,比如yum管理之类,第一次我就是强行用3.6.4把2.6覆盖掉了,然 ...

受教。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-2-12 15:15:24 | 显示全部楼层    本楼为最佳答案   
你的截图上面的历史命令部分我看不到,我只能这样解释一下
pyenv如果直接装在root目录下是很难受的
从你给出的截图部分来看,你似乎一直在root的~目录下操作
pyenv的local环境是可以覆盖global环境的,一旦你在当前目录下设立了一个local的python环境,那么当你用pyenv version或者
pyenv versions命令时显示的也就是当前所激活的local环境,global环境是不显示的
如果你要查看当前的global环境,应该使用pyenv global命令,后面不要跟任何参数

所以,看你的截图我没法判断pyenv global是不是正常地改变了global环境,你可以试试这几种操作:
1. cd到另一个目录(不可以是/root下的子目录,因为你已经设了一个local环境了,所有子目录都会被覆盖到),然后尝试用pyenv global改变global环境
2. 删除当前目录下存放local环境信息的 .python-version 文件(注意前面的小点,属于隐藏的配置类文件),保证root用户环境干净
3. 尝试重新安装配置pyenv(建议放在个人用户home目录下),按github上开发人员官方给出的步骤来配置,并修改.bashrc文件

pyenv install安装的python自带pip的,应该没必要再用get-pip.py来装了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-2-12 15:48:38 | 显示全部楼层
本帖最后由 天圆突破 于 2018-2-12 15:52 编辑

搞明白了,一切的问题都指向一点...pyenv不支持3.6.4
当删掉3.6.4换上3.5.4以后,一切都变得美好了
不知道为什么,虽然不支持3.6.4,但是通过pyenv install 3.6.4却能够安装,但是不能正常切换使用,而且不带pip,最重要的一点,python3命令无效
安装过程中,“滚动的文字”也明显要比3.5.4少很多很多……
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-2-12 15:52:53 | 显示全部楼层
DarkmasterSugar 发表于 2018-2-12 15:15
你的截图上面的历史命令部分我看不到,我只能这样解释一下
pyenv如果直接装在root目录下是很难受的
从你 ...

大佬说的对,我就是个初学者,刚上手还没考虑这么多,一会就重新做个环境看看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-2-12 15:57:01 | 显示全部楼层
DarkmasterSugar 发表于 2018-2-12 15:15
你的截图上面的历史命令部分我看不到,我只能这样解释一下
pyenv如果直接装在root目录下是很难受的
从你 ...

还有个问题想请教一下大佬,linux下安装pyenv需要的支持包比如Development tools之类,也需要建立在新的文件夹下吗?不安装到root里?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-2-12 16:04:12 | 显示全部楼层
天圆突破 发表于 2018-2-12 15:48
搞明白了,一切的问题都指向一点...pyenv不支持3.6.4
当删掉3.6.4换上3.5.4以后,一切都变得美好了 {:10_2 ...

还真是没想到这也行。。
查了一下pyenv的release note,关于3.6.4应该是已经支持了的
不过解决了总归是好事。
我也就是个用户,又不是开发者大佬(汗),也就不求甚解了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-2-12 16:06:12 | 显示全部楼层
天圆突破 发表于 2018-2-12 15:57
还有个问题想请教一下大佬,linux下安装pyenv需要的支持包比如Development tools之类,也需要建立在新的 ...

pyenv不需要什么支持包啊,直接git clone下来然后配置一下就可以了
Development tools是指什么?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-2-12 16:19:59 | 显示全部楼层
DarkmasterSugar 发表于 2018-2-12 16:06
pyenv不需要什么支持包啊,直接git clone下来然后配置一下就可以了
Development tools是指什么?

就是一个空白linux如果不装这些东西的话,直接安装pyenv会报错,里面包括git,gcc等等……
其余的还有readline-devel之类,这些也安装到用户目录还是在~下安装呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-2-12 16:54:39 | 显示全部楼层
天圆突破 发表于 2018-2-12 16:19
就是一个空白linux如果不装这些东西的话,直接安装pyenv会报错,里面包括git,gcc等等……
其余的还有re ...

不好意思,我才疏学浅了
因为之前用的是debian,没碰过centos所以闹了个笑话
development tools就是类似debian中build-essential这样的编译开发工具包,包含了gcc等编译器
这个确实要先装的,不过centos有yum这种包管理工具,直接yum groupinstall命令安装就可以了
linux系统的包管理工具会自动将这些工具安装到合适的位置,比如/bin, /usr/bin等,这点和windows不一样的
所以不需要选择安装到哪里,git也是同理,可以通过yum安装
和之前的pyenv形式不一样的,pyenv实质上是shell代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-2-12 18:48:03 | 显示全部楼层
DarkmasterSugar 发表于 2018-2-12 16:54
不好意思,我才疏学浅了
因为之前用的是debian,没碰过centos所以闹了个笑话
development tools就是类 ...

感谢大佬回复,现在明白多了!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-27 17:01

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表