Linux 下部署Django项目你可能会遇到的问题!

之前部署Django项目到服务器上的时候出现了各种问题,现在总结一下方便以后查阅,也希望能够帮到有同样问题的你。(如果有帮助记得点赞哦!)

Linux 升级 Python 至 3.x


一般情况下自己带的python 都是2.x的,为了使用新版本的3.x,需要对旧版本进行升级

 # python --version
 Python 2.7.5

系统自带的版本是2.7.5

1.下载新版本

版本可以自己随意选,我这里只是一个演示

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

2.压缩

  tar -zxvf Python-3.5.2.tgz

3.安装配置

 cd Python-3.5.2/
 ./configure 

如果./configure 出错说明没有安装编译器,这时,需要升级依赖包

  yum install make gcc gcc-c++ 

然后再

./configure 

4.编译 安装

 make 
 make install 

5.验证

# python3 -V
Python 3.5.2

6.设置默认版本为3.x

  ls -al /usr/bin | grep python

-rwxr-xr-x.  1 root root      11216 12月  1 2018 abrt-action-analyze-python
lrwxrwxrwx.  1 root root          6 4月  30 12:11 python -> python2
lrwxrwxrwx.  1 root root          5 4月  30 12:11 python2 -> python2.7
-rwxr-xr-x.  1 root root       7136 4月 20 2018 python2.7

将原来 python 的软链接重命名:

   mv /usr/bin/python /usr/bin/python.bak

将 python 链接至 python3:

  ln -s /usr/local/bin/python3 /usr/bin/python

查看结果

# python -V
Python 3.5.2

说明安装ok

7.配置 yum

 vim /usr/bin/yum

将 #!/usr/bin/python 改为 #!/usr/bin/python2.7,保存退出

  vim /usr/libexec/urlgrabber-ext-down

将 #!/usr/bin/python 改为 #!/usr/bin/python2.7,保存退出

报错 ImportError: No module named pip --- 需要 安装 pip



等你安装好python3.x ,安装Django的时候可能有会 报错 ImportError: No module named pip
安装pip的方法有很多,这里我只介绍我使用的

  wget https://pypi.python.org/packages/source/p/pip/pip-1.3.1.tar.gz --no-check-certificate  
   tar xvf pip-1.3.1.tar.gz  
   python3 setup.py build
   python3 setup.py install

安装的时候还可能会出现setuptools Compression requires the (missing) zlib module 的错误 这是因为缺少setuptools,下面的就是解决办法

报错 setuptools Compression requires the (missing) zlib module ---安装setuptools


  yum install zlib
  yum install zlib-devel

从新编译python (make)

下载 setuptools

  cd setuptools-39.2.0
  python setup.py install

安装ok 之后再去安装pip 就可以了

报错 ModuleNotFoundError: No module named '_sqlite3' ----安装sqlite3


最简单的方法(一般情况下都可以的如果不可以自行谷歌其他方法吧)

 yum install sqlite*
#重新编译python
 ./configure --prefix=/usr/local/sqlite3
 make && make install

pip已经安装,但是/usr/bin/pip: No such file or directory


这是路径错了

1.which pip 
/usr/local/bin/pip
2.pip 
-su: /usr/bin/pip: No such file or directory
3.type pip 
pip is hashed (/usr/bin/pip) 
 So pip is definintely in /usr/local/bin/pip but it is been cached as in /usr/bin/pip, thanks to the 
  Stackoverflow question, the solution is very simple:
 4.hash -r 
 When the cache is clear, pip is working again.

nginx启动成功,访问不了


可以去查看下阿里云的服务器,看下端口是不是没有放开

uwsgi启动后,前端出现400 Bad Request


出现这种情况应该是Django里面的配置有问题


好了,先总结到这里,后续再有继续添加。如果问题欢迎留言!

你可能感兴趣的:(Linux 下部署Django项目你可能会遇到的问题!)