因为centos7自带的版本是2.7,想要下载3.7去运行django的项目的时候老是报错,主要原因就是centos7老是指向2.7,这里总结以下,让python3和python2共存就是解决办法
目录
第二步:下载python,我是直接到网站下的3.7.16版本
第四步:将公钥复制粘贴到你github里,github->头像->设置->加入公钥
一、安装python3.7.x
第一步:安装依赖
[root@localhost /]# yum -y groupinstall "Development tools"
[root@localhost /]# 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
第二步:下载python,我是直接到网站下的3.7.16版本
https://www.python.org/ftp/python/3.7.16/Python-3.7.16.tar.xz
第三步:解压并编译
tar -xvJf Python-3.7.16.tar.xz
cd Python-3.7.16/
./configure --prefix=/usr/local/python3.7.16
make && make install
yum install libffi-devel -y
make install
第四步:配置软链接(就是把你root下载的配到usr去)
ln -s /usr/local/python3.7.1/bin/python3 /usr/bin/python3
ln -s /usr/local/python3.7.1/bin/pip3 /usr/bin/pip3
这里解释一下,平时终端调用python、pip等等都是从/usr/bin/来的,而我们下的东西在/usr/local/下,所以要链接,然后为了让python2.7和python3.7.x共存,我们使用python3、pip3来调用。下图为实际效果
二、使用git克隆github上Django的项目并部署
第一步:下载git
sudo yum install git
第二步:设置username、useremail
git config --global user.name ‘your_name’
git config --global user.email ‘your_email@domain.com’
第三步:新建一个.ssh文件夹,然后进入并创建密钥
ssh-keygen -t ed25519 -C your_email@example.com
第四步:将公钥复制粘贴到你github里,github->头像->设置->加入公钥
第五步:克隆github上的项目
git clone git@github.com:xxxxxxxxxxx
第六步:进入克隆好的项目下载需求,我使用了清华的镜像
cd ~/Bigdata
pip3 install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
我在下载需求的途中报错了,如下所示
Collecting mysqlclient==2.0.1
Preparing metadata (setup.py) ... error
error: subprocess-exited-with-error
× python setup.py egg_info did not run successfully.
这是因为没下载mysqlcient的依赖,解决方法如下
sudo yum install mysql-devel
下载完之后,运行(因为我克隆的是一个Django项目)
python3 manage.py runserver
这里我运行又报错了,这是因为没更新SQLite
raise ImproperlyConfigured('SQLite 3.8.3 or later is required (found %s).' % Database.sqlite_version)
django.core.exceptions.ImproperlyConfigured: SQLite 3.8.3 or later is required (found 3.7.17).
解决办法:
step1:安装最新版
wget --no-check-certificate https://www.sqlite.org/2023/sqlite-autoconf-3430000.tar.gz
step2:解压并编译
tar -zxvf sqlite-autoconf-3270200.tar.gz
cd sqlite-autoconf-3270200
./configure
make && make install
step3:配置链接
mv /usr/bin/sqlite3 /usr/bin/sqlite3_3.7.17 #这是原始的版本
ln -s /usr/local/bin/sqlite3 /usr/bin/sqlite3
sqlite3 --version
其实到这我还是不行,于是用了下面这一步:
进入.bashrc文件,加入export LD_LIBRARY_PATH="/usr/local/lib"
# .bashrc
# User specific aliases and functions
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
export LD_LIBRARY_PATH="/usr/local/lib"
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
再次运行,成功
cd ~/Bigdata
python3 manage.py runserver