Python从2.6平滑升级2.7

阿里云的默认配置是给服务器安装python 2.6.6版本,这个版本有点蛋疼,就是它已经不支持Django1.7。如果在2.6.6下默认安装Django的话,会安装上1.7版本,然后在启动的时候,就会显示如下的错误:

>>> import django
Traceback (most recent call last):
File "", line 1, in 
File "/usr/lib/python2.6/site-packages/django/__init__.py", line 1, in 
from django.utils.version import get_version
File "/usr/lib/python2.6/site-packages/django/utils/version.py", line 7, in 
from django.utils.lru_cache import lru_cache
File "/usr/lib/python2.6/site-packages/django/utils/lru_cache.py", line 28
fasttypes = {int, str, frozenset, type(None)},
^
SyntaxError: invalid syntax

所以需要把机器内原来的python2.6升级成2.7,但是要注意,linux默认的yum路径是用原装的python,如果不注意这一点的话,就会出现python是2.7但是yum报错的现象,那就悲剧了。


于是我们按照步骤一步一步来:

1)下载2.7.8版本的python,很多人会说python3是未来的趋势,为啥不直接下python3,因为广大服务器安装都是2.x,用3的话,步子迈得有点大,会扯到蛋。

# wget http://python.org/ftp/python/2.7.8/Python-2.7.8.tgz

2)编译 and 安装

# tar -zxvf Python-2.7.8.tgz

# cd Python-2.7.8

# ./configure --prefix=/usr/local/python27

# make && make install

3) 把原来2.6的python进行重命名,这一步是为了yum

# mv /usr/bin/python /usr/bin/python_old 

4)把2.7的python添加到linux的“快捷方式”

# ln -s /usr/local/python27/bin/python /usr/bin/

5)这个时间检查一下python

Python 2.7.8 (default, Jul 16 2016, 10:38:06) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-17)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>

6)把原来的yum的配置文件更改一下

# vim /usr/bin/yum 

之后把第一行由#!/usr/bin/python 改成 #!/usr/bin/python2.6,然后保存退出。

7)这个时候检查一下yum,看一下是否正常。


安装Django的过程

个人比较推荐pip方法安装Django,简单粗暴易懂。


#yum install python-pip

#pip install --upgrade pip (这个是升级pip的命令)

#pip install Django


安装完毕之后,启动python,然后查看一下是否安装成功。

[root@chen-cs-001 pip-1.2.1]# python
Python 2.7.8 (default, Jul 16 2016, 10:38:06) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-17)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import django
>>> django.VERSION
(1, 9, 7, 'final', 0)
>>> django.get_version()
'1.9.7'
>>>  print (django.__path__)
['/usr/local/python27/lib/python2.7/site-packages/django']

安装成功~OK!路径如上面所示~


问题解决

Q:当import django的时候出现下面的提示:importError: No module named utils.version

A:可以先卸载了重新安装pip uninstall Django 然后, pip install Django 注意D大写,也可以试试 pip uninstall django 低版本的用的是 django这个名称。


Q:系统自带python2.7,替换默认为python3,安装django后不能在python3中导入,2.7中可以导入,求解如何在3中导入

A:

#apt-get install python3-pip #(注意是python3 !)

然后

#pip3 install Django --user


Q:

SyntaxError: invalid syntax

>>> django-admin startproject mysite

File "", line 1

django-admin startproject mysite

A:需要把 Python目录下的 Scripts 也加入到环境变量目录


Q:pip install Django提示ImportError: No module named pip

A:

#wget https://pypi.python.org/packages/source/p/pip/pip-1.2.1.tar.gz
#tar xzf pip-1.2.1.tar.gz
#cd pip-1.2.1/
#python setup.py install


Q:启动pip安装的时候,提示ImportError: No module named pkg_resources

A:

wget http://pypi.python.org/packages/source/s/setuptools/setuptools-0.6c11.tar.gz
tar zxvf setuptools-0.6c11.tar.gz
cd setuptools-0.6c11
python setup.py build
python setup.py install