37、linux下安装python3.6和django
37.1、安装python:
1、python介绍:
python是一种面向对象的,解释型的计算机语言,它的特点是语法简介,优雅,简单易学。1989年诞生,Guido(龟叔)开发。
编译型语言:代码在编译之后,编译成2进制的文件,然后计算机就可用运行了。(C,C++,C#)
解释型语言:它是在运行的时候才编译的。(python,php,shell,ruby,js,java)
脚本语言:指这个语言只有一个单一的功能。(shell,js)
如果本机安装了python2,尽量不要管他,使用python3运行python脚本就好,因为可能有程序依赖目前的python2环境,
比如yum,所以不要动现在的python2环境;
2、安装依赖包:
(1)[root@nfs01 tools]# yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel \
sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel libffi-devel openssl-static openssl
[root@nfs01 tools]# rpm -qa zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel \
readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel libffi-devel openssl-static openssl
sqlite-devel-3.6.20-1.el6_7.2.x86_64
xz-devel-4.999.9-0.5.beta.20091007git.el6.x86_64
ncurses-devel-5.7-4.20090207.el6.x86_64
openssl-devel-1.0.1e-57.el6.x86_64
tk-devel-8.5.7-5.el6.x86_64
db4-devel-4.7.25-22.el6.x86_64
libpcap-devel-1.4.0-4.20130826git2dbcaa1.el6.x86_64
bzip2-devel-1.0.5-7.el6_0.x86_64
zlib-devel-1.2.3-29.el6.x86_64
gdbm-devel-1.8.0-39.el6.x86_64
readline-devel-6.0-4.el6.x86_64
libffi-devel-3.0.5-3.2.el6.x86_64
openssl-static-1.0.1e-57.el6.x86_64.rpm
openssl-1.0.1e-57.el6.x86_64
(2)因为python3.7依赖openssl包且版本号最低为1.0.2,而yum源安装的最新版本为1.0.1(centos6,在centos7下是1.0.2),
适用于python3.7以下的版本,所以需要下载新的openssl安装包:如果使用低版本的openssl会导致python无法导入ssl,
使用“pip install package” 命令安装python扩展库时会报“pip is configured with locations that require TLS/SSL,
however the ssl module in Python is not available”的错误;
下载地址为:http://www.openssl.org/source/openssl-1.0.2j.tar.gz
(3)安装openssl-1.0.2:
[root@nfs01 tools]# rz -y
rz waiting to receive.
Starting zmodem transfer. Press Ctrl+C to cancel.
Transferring openssl-1.0.2j.tar.gz...
100% 5183 KB 5183 KB/sec 00:00:01 0 Errors
[root@nfs01 tools]# tar -xzf openssl-1.0.2j.tar.gz
#openssl配置是用config,而不是configure,另外openssl编译安装依赖zlib动态库,所以一定要shared zlib
[root@nfs01 tools]# ./config --prefix=/usr/local/openssl_1.0.2 shared zlib
[root@nfs01 tools]# make && make install
#配置环境变量,LD_LIBRARY_PATH环境变量主要用于指定查找共享库:
[root@nfs01 tools]# vim /etc/profile
export LD_LIBRARY_PATH=/usr/local/openssl_1.0.2/lib
[root@nfs01 tools]# source /etc/profile
3、安装python软件:
下载官网: https://www.python.org/downloads/source/;
[root@nfs01 tools]# rz -y
rz waiting to receive.
Starting zmodem transfer. Press Ctrl+C to cancel.
Transferring Python-3.7.0.tgz...
100% 22212 KB 22212 KB/sec 00:00:01 0 Errors
[root@nfs01 tools]# tar -xzf Python-3.7.0.tgz
[root@nfs01 tools]# cd Python-3.7.0
[root@nfs01 Python-3.7.0]# mkdir /application -p
[root@nfs01 Python-3.7.0]# ./configure --prefix=/application/python3.7.0 --with-openssl=/usr/local/openssl_1.0.2/ --enable-shared CFLAGS=-fPIC --enable-optimizations
#--with-openssl=/usr/local/openssl_1.0.2/ 指定openssl的位置
#--enable-shared和-fPIC之后可以将python3的动态链接库编译出来,默认情况编译完lib下面只有python3.xm.a这样的文件,
#python本身可以正常使用,但是如果编译第三方库需要python接口的比如caffe等,则会报错。
#--enable-optimizations 使用稳定版本编译
[root@nfs01 Python-3.7.0]# echo $?
0
[root@nfs01 Python-3.7.0]# make
[root@nfs01 Python-3.7.0]# make install
Collecting setuptools
Collecting pip
Installing collected packages: setuptools, pip
#代表安装成功,pip(python库管理工具)和setuptools(python库发布工具)在python包中,安装时随python一起被安装;
Successfully installed pip-10.0.1 setuptools-39.0.1
[root@nfs01 Python-3.7.0]# cd /application
[root@nfs01 application]# ln -s python3.7.0/ python
[root@nfs01 application]# ls -l python
lrwxrwxrwx 1 root root 12 12月 29 16:57 python -> python3.7.0/
4、配置python环境变量:
[root@nfs01 application]# vim /etc/profile
PATH=$PATH:/application/python/bin
export PATH
[root@nfs01 application]# source /etc/profile
5、检查python3是否正常可用:
[root@nfs01 ~]# python3 -V
python3.7: error while loading shared libraries: libpython3.7m.so.1.0: cannot open shared object file: No such file or directory
原因是因为python运行时没有加载到libpython3.7m.so.1.0 这个库文件。
解决方法:
cd /root/tools/Python-3.7.0 #进入python3.7解压后的编译目录
cp libpython3.7m.so.1.0 /usr/local/lib64/
cp libpython3.7m.so.1.0 /usr/lib/
cp libpython3.7m.so.1.0 /usr/lib64/
[root@nfs01 ~]# python3 -V
Python 3.7.0
[root@nfs01 Django-1.10.8]# pip3 -V
pip 10.0.1 from /application/python3.7.0/lib/python3.7/site-packages/pip (python 3.7)
[root@nfs01 Python-3.7.0]# python3.7
Python 3.7.0 (default, Dec 30 2018, 19:07:34)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-16)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import ssl
>>>
6、pip和setuptools的升级:
默认情况下按照以上步骤就可完成python的安装,且已经安装好了pip和setuptools,如何进行升级
(1)安装setuptools:
setuptools是一组Python的distutillsde工具的增强工具,可以让程序员更方便的创建和发布Python包,特别是那些对其他包具有依赖性的状况。
方法一:
yum安装:yum install python-setuptools #适用于linux系统自带的python版本的安装;
pip升级安装: pip3 install --upgrade setuptools #适用于已经安装过pip软件后的升级操作;
方法二:
手动安装:
下载官网:https://pypi.org/project/setuptools/#files
[root@nfs01 tools]# rz -y
Transferring setuptools-40.6.3.zip...
100% 819 KB 819 KB/sec 00:00:01 0 Errors
[root@nfs01 tools]# unzip setuptools-40.6.3.zip &>/dev/null
[root@nfs01 tools]# cd setuptools-40.6.3
[root@nfs01 setuptools-40.6.3]# python3 setup.py install
Installed /application/python3.7.0/lib/python3.7/site-packages/setuptools-40.6.3-py3.7.egg
Processing dependencies for setuptools==40.6.3
Finished processing dependencies for setuptools==40.6.3
(2)安装pip:
pip 是 Python 包管理工具,该工具提供了对Python 包的查找、下载、安装、卸载,升级的功能,必须要连接互联网。
方法一:
yum安装:yum install python-pip #适用于linux系统自带的python版本的安装;
pip升级安装: pip3 install --upgrade pip #适用于已经安装过pip软件后的升级操作;
方法二:
手动安装;
下载官网:https://pypi.org/project/pip/#history
[root@nfs01 tools]# rz -y
Transferring pip-18.1.tar.gz...
100% 1229 KB 1229 KB/sec 00:00:01 0 Errors
[root@nfs01 tools]# tar -xzf pip-18.1.tar.gz
[root@nfs01 tools]# cd pip-18.1
[root@nfs01 pip-18.1]# python3 setup.py install
Installed /application/python3.7.0/lib/python3.7/site-packages/pip-18.1-py3.7.egg
Processing dependencies for pip==18.1
Finished processing dependencies for pip==18.1
pip常用命令:
pip3 install xxx #安装包,默认是search最新的,也可以带版本号,比如xxx==1.0.3;xxx>=1.0.3;
pip3 uninstall xxx #卸载包;
pip3 install --upgrade xxx #更新包 后可接 “==版本号”;
pip3 show --files xxx #查看已经安装的包,包括版本、安装位置等内容;
pip3 list --outdated #检查哪些包需要更新
pip3 -V #查看pip的版本
pip3 list #查看安装的第三方库
37.2、安装django:
0、
(1)django对应的python版本(2019年12月):
https://docs.djangoproject.com/en/dev/faq/install/#what-python-version-can-i-use-with-django
(2)django版本(2019年12月):
https://www.djangoproject.com/download/
Django按照以下形式命名版本编号:
按照A.B或A.B.C的形式命名版本编号。A.B是主版本号,包含新功能以及对原有功能的改进,每一个新版本都向前兼容,
Django大概每8个月就会发布一个主版本;C是小版本号,包含bug的修改等,每当有需要时就会发布。在Django正式
版本发布之前,还会发布alpha、beta和RC版本。另外Django长期支持的版本用LTS表示。Django推荐使用Python 3
进行开发,而最后一个支持Python 2.7的版本是Django 1.11LTS。
(3)Django被安装到Python的Lib下site-packages;
1、pip安装:
已经安装好了pip软件并且连接上了互联网;
[root@nfs01 tools]# pip3 install django
Collecting django
Downloading https://files.pythonhosted.org/packages/fd/9a/0c028ea0fe4f5803dda1a7afabeed958d0c8b79b0fe762ffbf728db3b90d/Django-2.1.4-py3-none-any.whl (7.3MB)
100% |████████████████████████████████| 7.3MB 6.8kB/s
Collecting pytz (from django)
Downloading https://files.pythonhosted.org/packages/f8/0e/2365ddc010afb3d79147f1dd544e5ee24bf4ece58ab99b16fbb465ce6dc0/pytz-2018.7-py2.py3-none-any.whl (506kB)
100% |████████████████████████████████| 512kB 7.7kB/s
Installing collected packages: pytz, django
Successfully installed django-2.1.4 pytz-2018.7
[root@nfs01 tools]# python3
Python 3.7.0 (default, Dec 30 2018, 19:07:34)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-16)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import django
>>> django.VERSION
(2, 1, 4, 'final', 0)
2、手动安装:
下载官网:https://www.djangoproject.com/download/
[root@nfs01 tools]# rz -y
Transferring Django-2.1.4.tar.gz...
100% 8410 KB 8410 KB/sec 00:00:01 0 Errors --enable-optimizations
[root@nfs01 tools]# tar -xzf Django-2.1.4.tar.gz
[root@nfs01 tools]# cd Django-2.1.4
[root@nfs01 Django-2.1.4]# python3 setup.py install
Installed /application/python3.7.0/lib/python3.7/site-packages/Django-2.1.4-py3.7.egg
Processing dependencies for Django==2.1.4
Searching for pytz==2018.7
Best match: pytz 2018.7
Adding pytz 2018.7 to easy-install.pth file
Using /application/python3.7.0/lib/python3.7/site-packages
Finished processing dependencies for Django==2.1.4
37.3、总结:
python安装完成后会自带pip和setuptools软件;
pip、setuptools的版本受python版本的制约,这一点在下载时会提示,djanjo版本受python版本的制约;
linux系统默认安装的python的版本在2.66-3.0之间,其没有pip和setuptools这两个库管理软件,使用
yum安装的方法是yum install python-pip yum install python-setuptools ;
37.4、补充:windows下对python的相关操作:
1、安装python:
(1)点击python的exe文件即可完成安装,已经完成了pip和setuptools的安装。
(2)配置环境变量:
2、对pip、setuptools操作:
(1)用法和linux下类似,只不过是在系统管理员权限的cmd模式下。
(2)例如:
3、对django的操作:
(1)手动安装django:
下载 Django 压缩包,解压并和Python安装目录放在同一个根目录,进入 Django 目录,执行python setup.py install,
然后开始安装,Django将要被安装到Python的Lib下site-packages。
37.5、注意:
手动或使用pip安装django后,在windows中django-admin默认会被加到"<Python家目录>/Scripts"目录下,在linux
中django-admin默认会被加到"<Python家目录>/bin"目录下。如果django-admin不能用,需要手动将
"<Python家目录>/Lib/site-packages/django/bin"加入到系统的环境变量中。
37、linux下安装python3.6和django的更多相关文章
- Linux下安装Python3.3.0
Linux下安装Python3.3.0_路易_新浪博客 Linux下安装Python3.3.0 (2013-01-08 11:45:37)
- 【转】在Linux下安装python3
原文链接:http://www.cnblogs.com/feng18/p/5854912.html 1.linux下安装python3 a. 准备编译环境(环境如果不对的话,可能遇到各种问题,比如wg ...
- Python3.x:Linux下安装python3.6
Python3.x:Linux下安装python3.6 下载 #先进入download文件夹 cd /home/download #输入命令(下载到当前目录) wget https://www.pyt ...
- linux下安装python3(转)
一.Linux下安装Python 二.Linux下Python安装完成后如何使用pip命令 三.Linux下Python安装完成后如何使用yum命令 四.Linux下安装Anaconda 五.Linu ...
- Linux下安装python3.3.2及configrue、make、make install
一.安装python3.3.2 raspberry的/usr/local/src目录没有权限,可执行如下命令 pi@raspberrypi:~$ sudo chmod -R 777 /usr/loca ...
- Linux下安装Python3.6.8并安装包
一.问题在Linux下面安装Python3.6.8,由于在Linux中的Python是2.7.x的版本因此,我们需要在Linux中新下载一个Python 二.解决1.python的安装(1)下载包利用 ...
- Linux下安装Python3的django并配置mysql作为django默认数据库(转载)
我的操作系统为centos6.5 1 首先选择django要使用什么数据库.django1.10默认数据库为sqlite3,本人想使用mysql数据库,但为了测试方便顺便要安装一下sqlite开发包 ...
- Linux下安装Python3和django并配置mysql作为django默认服务器
我的操作系统为centos6.5 1 首先选择django要使用什么数据库.django1.10默认数据库为sqlite3,本人想使用mysql数据库,但为了测试方便顺便要安装一下sqlite开发包 ...
- 环境准备—之—linux下安装python3和pip3
转自 上海悠悠 https://www.cnblogs.com/yoyoketang/p/10195102.html 前言 centos7 自带有 python,但是却是 python2 版本的 py ...
随机推荐
- 【转载】Linux查看PCIe版本及速率【方法】PCIE的X4X8X16 查看 数量 怎么看
Linux查看PCIe版本及速率 PCIE有四种不同的规格,通过下图来了解下PCIE的其中2种规格 查看主板上的PCI插槽 # dmidecode | grep --color "P ...
- 云计算OpenStack---虚拟机获取不到ip(12)
一.现象描述 openstack平台中创建虚拟机后,虚拟机在web页面中显示获取到了ip,但是打开虚拟机控制台后查看网络状态,虚拟机没有ip地址,下图为故障截图: 二.分析 1.查看neutron服务 ...
- mysql基础之mariadb的安装,连接,用户,密码,权限设置语句详解
一.mariadb安装 1.配置mariadb源: [root@ren7 ~]# vim /etc/yum.repos.d/mariadb.repo [mariadb] name = MariaDB ...
- shell基础之变量及表达式
本节内容 1. shell变量简介 2. 定义变量 3. 使用变量 4. 修改变量的值 5. 单引号和双引号的区别 6. 将命令的结果赋值给变量 7. 删除变量 8. 变量类型 9. 特殊变量列表 1 ...
- sizeof 的妙用
(1)sizeof也可以对一个函数调用求值,其结果是函数返回类型的大小,函数并不会被调用.
- centos更换损坏硬盘uuid改变导致系统不能正常启动处理
1.因为挂载磁盘uuid错误导致,而系统在启动的时候,会读取fstab文件.来加载预设的硬盘到指定的分区目录,但读取到需要挂载的UUID的磁盘不存在,中断文件的读取,然后提示文件系统错误,不能解析UU ...
- C语言关于指针函数与函数指针个人理解
1,函数指针 顾名思义,即指向函数的指针,功能与其他指针相同,该指针变量保存的是所指向函数的地址. 假如是void类型函数指针定义方式可以是 void (*f)(参数列表);亦可以先用 typedef ...
- 常见判断错误 (Day_30)
写给自己的话: 这是一个卡了我小半天的BUG,也是一个很低端的BUG,写篇博客吧,以后回来看看,会发现曾经的自己是如何的菜. 同样,以此记录我的进步 步入正题,这是我实现多条件分页时遇到的一个BUG, ...
- 用navigation的大致图
- 写Bug时,需要注意的几点3
在对象之间搬移特性 类往往会因为承担过多责任而变得臃肿不堪. (Move Method)搬移函数 含义:在程序中,里面的一个函数与其类外面的一个类或函数有着紧密的调用或者被调用,则需要对其函数内部的表 ...