Python的安装

Python的安装

一 、 Linux下centos环境下的安装

在安装Python之前,请务必保证你的操作系统中有readIine-devel的包,该包不存在会导致

Python Shell中无法删除,可以使用如下命令安装。

yum  install  readline-devel

下载Python源码包,最新版本可以通过www. python.org找到。

wget https://www.python.org/ftp/python/2.7.11/Python-2.7.11.tgz

解压并进入该目录。

tar-zxvf  Python-2.7.11.tgz

cd Python-2.7.11

编译安装至/usr/local/python27目录下。

./configure

prefix=/usr/local/python27

make

Make install

将原Python版本更改为历史版本。

mv /usr/bin/python {,_old}

In  -s /usr/local/python27/bin/python /usr/bin/python

ln -s /usr/local/python27/bin/pip /usr/bin/pip

验证Python版本。

$python  -V

Python 2.7.11

环境包的安装

案例分析

python的包管理器

Python  get.py

Esay_install

Pip的包的类似的功能

Easy_install pip

把pip的源更换豆瓣的pip源(方便pip源)

 vim /usr/bin/yum

[root@localhost opt]# python get-pip.py

安装pip

Pip install 包名

Pip uninstall 包名

#查找

Pip serch 包名

Pyc  pyo

包的生成和制作

Python get-pip.py

Pip  install  numy

Import  numy

[root@localhost testpy]# python get-pip.py

[root@localhost testpy]# pip install numpy

Collecting numpy

  Downloading numpy-1.13.3-cp27-cp27m-manylinux1_x86_64.whl (16.6MB)

    100% |████████████████████████████████| 16.7MB 49kB/s

Installing collected packages: numpy

Successfully installed numpy-1.13.3

[root@localhost testpy]# ipython

升级

[root@localhost testpy]# pip install numpy  -U

 [root@localhost testpy]# pip install --upgrade 包名

 常见问题解决

最齐全的安装包

Anaconda包含(numpy scipy  pandas ipython  matplotlib  scikit-learn  NLTK )

 

api文档工具,sphinx的文档生产工具

==============================================================================

File "out/host/linux-x86/obj/EXECUTABLES/mksnapshot.arm_intermediates/js2c.py", line 36, in <module>

    import bz2

ImportError: No module named bz2

Traceback (most recent call last):

  File "out/host/linux-x86/obj/EXECUTABLES/mksnapshot.arm_intermediates/js2c.py", line 36, in <module>

    import bz2

ImportError: No module named bz2

 

解决方法:

【第一步】下载 bzip2-1.0.5.tar.gz编译,点这里下载

tar -xf bzip2-1.0.5.tar.gz

cd bzip2-1.0.5

64位系统需要加上-fPIC编译选项

vi Makefile

CFLAGS=-fPIC -Wall -Winline -O2 -g $(BIGFILES)

make

sudo make install

【第二步】重新编译python

cd Python-2.7.6

make

sudo make install

python

>>>import bz2

3.6安装

1更换系统源

 cd /etc/yum.repos.d/

2 wget http://mirrors.163.com/.help/CentOS6-Base-163.repo #下载网易源

3 mv CentOS-Base.repo CentOS-Base.repo.ori #备份源

4 mv CentOS6-Base-163.repo CentOS-Base.repo #把网易源更改为默认源

2安装依赖包

yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel

3下载python3.6

 

wget https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tgz

 tar vxf Python-3.6.1.tgz

 cd Python-3.6.1.tgz

 ./configure --prefix=/usr/local   #编译,自定义安装目录,如果自定目录不在环境变量重要,要把安装的目录加入到环境变量中

  make && make install  #这个过程会非常慢

 ln –s /usr/local/bin/python3 /usr/bin/python3  #建立软连接

 

Mv  /usr/bin/python /usr/bin/old

 

root@centos6 bin]# python3

Python 3.6.1 (default, May 12 2017, 00:21:59)

[GCC 4.4.7 20120313 (Red Hat 4.4.7-4)] on linux

Type "help", "copyright", "credits" or "license" for more information.

4安装pip源

wget https://pypi.python.org/packages/11/b6/abcb525026a4be042b486df43905d6893fb04f05aac21c32c638e939e447/pip-9.0.1.tar.gz#md5=35f01da33009719497f01a4ba69d63c9  #pip下载,官网去下载。tar zxf pip-9.0.1.tar.gz

cd pip-9.0.1

python3 setup.py install

5安装ipython

pip install ipython

 二、Windows环境下安装

 

在windows环境下安装python2.7,直接运行即可,可选择安装路径

环境变量的配置

 Pycharm安装,选好安装路径,一路安装即可

 三、常见问题解决

解决方法:

1、安装依赖zlib、zlib-devel

2、重新编译安装Python

./configure

编辑Modules/Setup文件

找到下面这句,去掉注释

#zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz

重新编译安装:make & make install

 (2)SSL没有安装,报错如下:

pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.

Collecting pip

  Could not fetch URL https://pypi.python.org/simple/pip/: There was a problem confirming the ssl certificate: Can't connect to HTTPS URL because the SSL module is not available. - skipping

  Could not find a version that satisfies the requirement pip (from versions: )

No matching distribution found for pip

解决方案如下:

[root@localhost ~]# python2.7.5

Python 2.7.5 (default, Jun 3 2013, 11:08:43)

[GCC 4.1.2 20080704 (Red Hat 4.1.2-54)] on linux2

Type "help", "copyright", "credits" or "license" for more information.

>>> import ssl

Traceback (most recent call last):

File "<stdin>", line 1, in <module>

File "/usr/local/python27/lib/python2.7/ssl.py", line 60, in <module>

import _ssl # if we can't import it, let the error propagate

ImportError: No module named _ssl

>>>

 

2. 查看openssl安装包,发现缺少openssl-devel包

[root@localhost ~]# rpm -aq|grep openssl

openssl-0.9.8e-20.el5

openssl-0.9.8e-20.el5

[root@localhost ~]#

3. yum安装openssl-devel

[root@localhost ~]# yum install openssl-devel -y

#查看安装结果

[root@localhost ~]# rpm -aq|grep openssl

openssl-0.9.8e-26.el5_9.1

openssl-0.9.8e-26.el5_9.1

openssl-devel-0.9.8e-26.el5_9.1

openssl-devel-0.9.8e-26.el5_9.1

 

4. 重新编译python

#修改Setup文件

vi /usr/software/Python-2.7.5/Modules/Setup

#修改结果如下:

# Socket module helper for socket(2)

_socket socketmodule.c timemodule.c

 

# Socket module helper for SSL support; you must comment out the other

# socket line above, and possibly edit the SSL variable:

#SSL=/usr/local/ssl

_ssl _ssl.c \

-DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \

-L$(SSL)/lib -lssl -lcrypto

 

5. 重新编译

make

make install

 

6. 测试,已可正常使用。

[root@localhost ~]# python2.7.5

Python 2.7.5 (default, Jun 3 2013, 14:56:13)

[GCC 4.1.2 20080704 (Red Hat 4.1.2-54)] on linux2

Type "help", "copyright", "credits" or "license" for more information.

>>> import ssl

>>>

Python3.7安装

关于在centos下安装python3.7.0以上版本时报错ModuleNotFoundError: No module named '_ctypes'的解决办法

原创 2018年02月12日 15:23:38

· 228

3.7版本需要一个新的包libffi-devel,安装此包之后再次进行编译安装即可。

[plain] view plain copy

1. #yum install libffi-devel -y 

2. #make install 

若在安装前移除了/usr/bin下python的文件链接依赖,此时yum无法正常使用,需要自己下载相关软件包安装,为节省读者时间,放上链接

[plain] view plain copy

1. #wget http://mirror.centos.org/centos/7/os/x86_64/Packages/libffi-devel-3.0.13-18.el7.x86_64.rpm 

2. #rpm -ivh libffi-devel-3.0.13-18.el7.x86_64.rpm 

安装完成后重新进行make install,结束后再次配置相关文件的软连接即可。

 

 使用easy_install安装: 各种进入到easy_install脚本的目录下,然后运行easy_inatall pip

使用get-pip.py安装: 在下面的url下载get-pip.py脚本 curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py 然后运行:python get-pip.py 这个脚本会同时安装setuptools和wheel工具。

在linux下使用包管理工具安装pip: 例如,ubuntu下:sudo apt-get install python-pip。Fedora系下:sudo yum install python-pip

在windows下安装pip: 在C:\python27\scirpts下运行easy_install pip进行安装。

刚安装完毕的pip可能需要先升级一下自身: 在Linux或masOS中:pip install -U pip 在windows中:python -m pip install -U pip

 

 

2. 指定版本安装

安装特定版本的package,通过使用==, >=, <=, >, <来指定一个版本号。 pip install 'Markdown<2.0' pip install 'Markdown>2.0,<2.0.3

3. 卸载已安装的库

pip uninstall pillow

4. 列出已经安装的库

pip list

5. 将已经安装的库列表保存到文本文件中

pip freeze > requirements.txt

这个功能非常常用、好用!经常被用作项目环境依赖文件。

6. 根据依赖文件批量安装库

pip install -r requirements.txt

 

使用方法:

pip install -i https://pypi.doubanio.com/simple/ --trusted-host pypi.doubanio.com pillow

 

四、虚拟环境的建立

virtualenv需要独立手动安装后,方可执行。之后的版本中,Pytho自带了一个venv库,执行Python –m venv就可以达到与virtalenv同样的效果。更多的用户习惯上还是使用virtualenv的方式

virtualenv –p c:\Python27\Python2.exe –-no-site-packages d:\Python_virtualenvs\for_django

-p: 指定你要虚拟的Python版本,这里选择了本地的python2.7

–-no-site-packages:表示在建立虚拟环境时不将原版本中的第三方库拷贝过来,这样就能获得一个纯净的Python环境。

d:\Python_virtualenvs\for_django:表明在该目录下,建立一个叫做for_django的虚拟环境,这样的命名方式,让你一眼就能看出这个虚拟环境是为谁建立的

进入虚拟环境中

命令行下,进入你要使用的虚拟环境的目录下的script文件夹,运行activate命令。或者使用绝对路径的方式调用该命令。

退出虚拟环境中 deactivate

linux环境下

创建虚拟环境: $ virtualenv -p /usr/bin/python2.7 –-no-site-packages my_venv

启动虚拟环境: $ source my_venv/bin/activate 

退出虚拟环境: $ deactivate 

删除虚拟环境: $ rm –r my_venv

virtualenv配合pip快速建立开发环境

virtualenv虚拟环境配合pip的freeze功能,可以一次性快捷的将整个环境下的第三方模块全部记录下来: pip freeze > d:\requirements.txt

对应的,也可以用它一次性通过在别的机器上或虚拟环境里,将文件里列出的第三方库安装起来。只需要使用命令:pip install -r requirements.txt

Emacs

Sublime

UltraEdit

Eclipse with PyDev

Komodo Edit

WingIDE

,Python还很贴心的在解释器内部提供了很多有用的方法,可以直接查看帮助信息,

比如内置的help()帮助函数和dir()显示成员函数。help()能够打印出指定方法、函数、变量、类的说明信息。dir()能够列出对象的所有成员,帮助你快速查找方法和变量。还可以通过__doc__成员查看对象的帮助文档

举例说明,在IDLE中,首先导入你想要查看的对象,比如这里的“timeit”模块,import timeit,然后调用help(timeit)和dir(timeit)。

 

排错的信息内容::::: 如何阅读错误调用栈的信息

现在,我们已经开始写一些简单的Python代码和语句了,犯错是免不了的,Python给我们提供了很全面细致的错误调用栈信息,帮助我们查找错误。以下面的代码为例(我额外给包括空行在内的每一行添加了行号信息):

def foo(s):             #1

    return 10 / int(s)  #2

                        #3

def bar(s):             #4

    return foo(s) * 2   #5

                        #6

def main():             #7

    bar('0')            #8

                        #9

main()                  #10

 

运行代码后,会弹出如下的错误:

Traceback (most recent call last):

  File "F:/Python/pycharm/201705/1.py", line 10, in <module>

    main()

  File "F:/Python/pycharm/201705/1.py", line 8, in main

    bar('0')

  File "F:/Python/pycharm/201705/1.py", line 5, in bar

    return foo(s) * 2

  File "F:/Python/pycharm/201705/1.py", line 2, in foo

    return 10 / int(s)

ZeroDivisionError: division by zero

 

这些信息就是错误提示。我们需要从上往下读,英文看起来很复杂,其实很易懂。Traceback...表示追踪错误开始,说在某个位置的1.py文件的第10行中的main这个函数出了问题。那么问题出在哪呢?是1.py文件中的第8行的bar函数调用出了问题,那么出什么问题呢?还没找到根子,又说在第5行,第2行调用出了问题,然后最终发现是return 10 / int(s)这行语句的问题。问题是什么,发生了除零错误!ZeroDivisionError是一个除零异常。到这里,我们恍然大悟,我让10除0了,所以出现错误了,那么就知道怎么改了。

其实查找错误,排除错误就是这么简单,只是需要你耐心的一行行地查看错误调用栈,再根据最后的错误类型,就可以判断错误的发生原因并修改错误,没有想象中的那么复杂。更不要直接将错误甩给别人或者老师!那种张嘴就是“我这里出错了,是什么原因?”的提问方式,是最没有水平的。

 

==============================================

    Complete output from command python setup.py egg_info:

    Traceback (most recent call last):

      File "<string>", line 1, in <module>

      File "/tmp/pip-install-4q1pt2wg/MySQL-python/setup.py", line 13, in <module>

        from setup_posix import get_config

      File "/tmp/pip-install-4q1pt2wg/MySQL-python/setup_posix.py", line 2, in <module>

        from ConfigParser import SafeConfigParser

    ImportError: No module named 'ConfigParser'

   

    ----------------------------------------

Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-install-4q1pt2wg/MySQL-python/

1,在官网下载MySQL-python-1.2.5。https://pypi.python.org/pypi/MySQL-python

2,unzip  MySQL-python-1.2.5.zip

3,安装

cd MySQL-python-1.2.5

python setup.py build

python setup.py install

 

error: command 'x86_64-linux-gnu-gcc' failed with exit status 1

sudo apt-get install libxml2-dev libxslt1-dev python-dev

sudo apt-get install zlib1g-dev

sudo apt-get install libevent-dev

sudo pip install lxml

 

matplotlib InstallationError: Command python setup.py egg_info failed with error code 1

 

sudo apt-get install libjpeg8-dev libfreetype6-dev libpng12-dev

=======================

问题描述:

已有的model,修改之后,想重新建模,于是将migrations文件夹中除__init__.py之外其他文件都删掉,再次执行以下步骤python manage.py makemigrations确认成功,执行python manage.py migrate,提示No migrations to apply. 表示一脸懵逼。再次修改,指定表名,再次尝试,发现问题依旧,表示二脸懵逼

 

排查过程

python manage.py dbshell 进到数据库里面,查看是否表已存在

结果:表不存在

检查migrations文件

结果:文件没问题

百度 google 各种搜,乱投医,各种尝试

解决方案

python manage.py dbshell 进到数据库中,执行delete from django_migrations where app='your_appname';

python manage.py makemigrations(若migrations文件未删除,可不执行这一步)

python manage.py migrate 好啦,大功告成

原因分析

查看django_migrations表结构

建表语句:

CREATE TABLE "django_migrations" ("id" integer NOT NULL PRIMARY KEY AUTOINCREMENT, "app" varchar(255) NOT NULL, "name" varchar(255) NOT NULL, "applied" datetime NOT NULL);

原因

造成多次应用migrations失败的原因是,当前model是修改过的,原来的migrations已经被我删除,但是,重新生成的migrations使用递增整数记名,所以,在django_migrations表中0001,0002等前面几个数字的文件都已被记录,在Django看来,被记录了就相当于已应用,所以,会出现刚开始的No migrations to apply.

避免方案

有强迫症删除migrations文件的同学(比如我),请同时到数据库中删除相应记录

没有强迫症的同学,可以继续生成新的migrations,旧的就不必理会了

题外话

执行python manage.py migrate之后,可以使用python manage.py sqlmigrate appname migrations_num(例如python manage.py sqlmigrate user 0002)查看当前migrations文件对应的sql语句。

另外,在使用上述命令查看0002文件的sql语句时发现,django会新建一个表user_new,然后插入user表中的数据,再把user表删掉,再把user_new重命名为user。所以,修改model的时候,不必担心原有数据会丢失。

 

django 数据库迁移(migrate)应该知道的一些事

命令首先数据库迁移的两大命令: python manage.py makemigrations & python manage.py migrate 前者是将model层转为迁移文件migrati...

想对作者说点什么?  我来说一句

 

指法飘逸黄大仙: 多谢多谢了,解决了我的问题(10个月前#1楼)

python manage.py migrate 出错后产生的坑

 85

 

当你修改modal出现错误后,执行python manage.py makemigrations成功,然后执行python manage.py migrate... 来自:        c0411034的博客

Python3 Django2.0 migrate 不能创建表

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Stestack

你的鼓励是我最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值