编译安装python

编译安装python

1.下载python3的原码包

1.1下载到到opt目录中
cd /opt
1.2下载python3的原码包
wget https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tgz
1.3在安装python3之前,解决环境依赖(下载了各种各样的工具包),避免以后踩坑
yum install gcc patch libffi-devel python-devel zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel -y
注:如果用yum命令,提示yum进程被锁定,无法使用,说明有另一个进程也在用yum,yum只能有一个进程使用,解决办法:ps -ef|grep yum

2.解压缩源码包

下载好python3源码包之后,在/opt目录下会有Python-3.6.2.tgz,解压缩tgz格式的压缩包用tar命令
tar -xvf Python-3.6.2.tgz

3.切换源码包目录

cd Python-3.6.2


4.编译且安装

4.1.释放编译文件makefile,这makefile就是用来编译且安装的
./configure --prefix=/opt/python36/
注:--prefix 指定软件的安装路径 
4.2.开始编译python3
make
4.3.编译且安装 (只有在这一步,才会生成/opt/python36)
make install 
4.4.配置python3.6的环境变量
    4.4.1.配置软连接(二选一即可)
    4.4.2.配置path环境变量 (二选一即可)
        4.4.2.1.echo $PATH查看环境变量
            /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
        4.4.2.2.#这个变量赋值操作,只是临时生效,需要写入到文件,永久生效                    
              PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/opt/python36/bin
    #linux有一个全局个人配置文件
    编辑这个文件,在最底行写入PATH,使其永久生效
        4.4.2.3.vim /etc/profile 
        写入            
          PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/opt/python36/bin
    保存退出
        4.4.2.4.读一下这个/etc/profile 使得生效
        source /etc/profile     

测试部分

5.测试linux安装一个django

pip3 install django 
也可以用豆瓣源下载
pip3 install -i https://pypi.douban.com/simple django 

6.创建django项目

到/opt/下
cd /opt/
django-admin startproject mysite 

7.创建django的APP应用

django-admin startapp app01 

修改App中的内容,自定义函数和类

注:运行后如果出现ALLOW的错误,在settings.py中修改其为["*"]

启动Django项目
python manage.py runserver
或
python manage.py runserver 0.0.0.0:8000

确保开发环境的一致性

1.假设我们在本地开发环境,准备好了项目+依赖包环境
2.现在需要将项目上传至服务器,上线发布
3.那么就要保证服务器的python环境一致性

解决方案

导出当前python环境的包,到requirements.txt文件中
    pip3 freeze > requirements.txt  
    注:pip list 在不产生requirements文件的情况下, 查看已安装包的列表
在另一台服务器中的venv中导入项目所需的模块依赖
    pip3 install -r requirements.txt

 

原文地址:https://www.cnblogs.com/shanghongyun/p/10120118.html