今天准备了一台centos7的虚拟机,想拿来当python小霸王学习机。系统自带python版本2.7.5,经过我认真琢磨,要学咱就学新版本小py,所以果断安装了一个python3.5.2
下载解压,进入目录,因为怕直接安装完maybe跟系统的python会发生点什么剧情,比如yum用不了之类的,所以我指定了一下python的路径
./configure --prefix=/usr/local/python
make all
make install
目前来看一切都很顺利,那么我们继续。因为之前早有耳闻,ipython交互shell比较牛x,和vim结合使用,比较好使,所以我就搞了一个ipthon5.0.0,
下载解压,进入目录,想了一下,用新安装的python3.5.2来安装ipython吧,就是想用新py当作ipython默认的解释器
/usr/local/python/bin/python3.5 setup.py build(这项不知道有什么用 没有也没事 有懂得给我发一下 )
/usr/local/python/bin/python3.5 setup.py install
到这都没问题,ipython的bin文件都在/usr/local/python/bin下,可是接下来,就是各种坑爹各种玩我...
ln -s /usr/local/python/bin/ipython /usr/bin/ipython 没问题
启动吧,ipython!
file /bin/ipython line 4 ....from ipython import start_ipython...
blablabla一堆,start_main()什么什么的起不来,最底下一行字:
...No model named traitlets..
我擦咧!za回事捏~
其实我当时以为是python版本问题 以为这个ipython5.0.0和python的2.7.5一起搞事情,然后就是经过一顿扫盲,google与百度齐飞,最后还是说缺了traitlets这么个玩意,让我安装(其实提示挺清晰,我以为不是因为这个...丢人),接下来搞了个epel源,安装了个python-pip,用pip下载下来了,再启动发现还是说找不到这个玩意,原来他下载到python2.7的路径下了,我了个去!怒copy过去
cp -r /usr/lib/python2.7/site-xxxxxx/traitlets(忘了目录名字了,自己补全一下,traitlets这个是个目录)/usr/local/python/lib/site-xxxx/
然后我检索了一下怎么改pip默认下载路径,学到这招:在用户目录下面建个.pip目录下建立pip.conf文件
[install]
install-option=--prefix=/usr/local/python/lib/python3.5/site-xxxxxx/
再启动!第一步过了,第二个又来了,告诉我缺ipython_genutils,这个我用pip下载竟然没有 ,自己下载安装完毕,启动又报错:
missing parentheses in call to 'exec'
终于到了版本出现分歧的错误,因为我刚才的traitlets是copy过去的,python2.7与3.5是有区别的,我觉得此路不通!重头来
我决定删除已经编译安装好的python3.5和ipython重新来!编译python和ipython没变,根据启动时候报的错,我学乖了,每个包都去pypi.python.org下载回来,https://pypi.python.org/pypi,在索引里输入包名就可以了。
我这里按顺序是这样安装的:
traitlets-4.2.2,ipython_genutils-0.1.0,decorator-4.0.10(这里要停一下,安装他的时候,需求setuptools包,setuptools又需要系统有zlib和zlib-devel的包,没有的话,yum安装,然后重新编译安装python3.5.2,不需要删除,直接指定路径./configure,make all,make install就行了),setuptools25.1.1,pygments-2.1.3 ,pexpect4.2.0,ptyprocess-
0.5.1,pickleshare0.7.3,prompt_toolkit(这个包又需求wcwidth0.1.7和six>1.9.0版本我用的是six-1.10.0),simplegeneric-0.8.1
/usr/local/python/bin/python3.5 setup.py install
启动/usr/local/python/bin/ipython3 SUCCESS!!!~!!
我都啰嗦的要吐了,太详细了,别嫌我啰嗦,我是给不会的同学写的,我自己弄了1天,没必要让所有人都浪费这么多时间,大神绕过就行了。
差点忘了英文了,一起学习:
Your patience when you have nothing,and your attitude when you have everything,define you
一无所有时的耐心和拥有一切时的态度,体现了一个人的境界