
<font color='red'>不使用 Anaconda 可直接跳到创建虚拟环境</font>

root@iZwz9ijwralw5z37wd16xsZ:~# bash ~/Downloads/Anaconda3-5.3.1-Linux-x86_64.sh ![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uxvB4xoo-1596510168906)(C:\Users\user\AppData\Roaming\Typora\typora-user-images\image-20200726085008704.png)]](https://ask.qcloudimg.com/http-save/7242516/omqtltecef.png)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QVZgCMiB-1596510168908)(C:\Users\user\AppData\Roaming\Typora\typora-user-images\image-20200726085429443.png)]](https://ask.qcloudimg.com/http-save/7242516/yxj1uiy5jc.png)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xnxv4n7e-1596510168910)(C:\Users\user\AppData\Roaming\Typora\typora-user-images\image-20200726085610006.png)]](https://ask.qcloudimg.com/http-save/7242516/po1ijkbdp6.png)
conda list , 安装成功会显示包名```root@iZwz9ijwralw5z37wd16xsZ:~# conda create -n MyDjango python=3.6.2```<span id='create'></span>
vim ~/.bashrc
# 添加下面代码
export WORKON_HOME=$HOME/.virtualenvs
export PROJECT_HOME=$HOME/workspace
source /usr/local/bin/virtualenvwrapper.sh
# 使 .bashrc 生效
source ~/.bashrcmkvirtualenv --python='/root/anaconda3/envs/MyDjango/bin/python' MyDjango
默认情况下,新创建的环境将会被保存在/Users/<user_name>/anaconda3/env目录下,其中,<user_name>为当前用户的用户名。 不指定python环境的话,默认会选择本地的python版本
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VIpr7KCT-1596510168912)(C:\Users\user\AppData\Roaming\Typora\typora-user-images\image-20200726094725914.png)]](https://ask.qcloudimg.com/http-save/7242516/vome0ng1p1.png)
git clone 命令将仓库克隆到服务器pip freeze > requirement.txt 命令将项目所需包输出到 requirement.txt 文件中pip install -r requirements.txt 命令安装包
settings.py 文件```DEBUG=FALSEALLOWED_HOSTS=['*']```uwsgi.ini,方便启动/终止 uwsgi 服务```[uwsgi]# 使用nginx链接时使用# socket=127.0.0.1:8000# 直接做web服务器使用 python manage.py runserver ip:porthttp=127.0.0.1:8000# 项目目录 [pwd查看 直接填,不需要引号]chdir=# 项目中wsgi.py文件的目录,相对于项目目录wsgi-file=# 指定启动的工作进程数processes=4# 指定工作进程中的线程数threads=2# 进程中,有一个主进程master=True# 保存启动之后主进程的pidpidfile=uwsgi.pid# 设置uwsgi后台运行, uwsgi.log 保存日志信息daemonize=uwsgi.log# 设置虚拟环境的路径 [cd .virtualenvs]virtualenv=```下面是我的
uwsgi.ini文件配置,可以参考一下。
[uwsgi]
# 使用nginx链接时使用
socket=127.0.0.1:8000
# 直接做web服务器使用 python manage.py runserver ip:port
# http=127.0.0.1:8000
# 项目目录 [pwd查看 直接填,不需要引号]
chdir=/root/MyDjango
# 项目中wsgi.py文件的目录,相对于项目目录
wsgi-file=MyDjango/wsgi.py
# 指定启动的工作进程数
processes=4
# 指定工作进程中的线程数
threads=2
# 进程中,有一个主进程
master=True
# 保存启动之后主进程的pid
pidfile=uwsgi.pid
# 设置uwsgi后台运行, uwsgi.log 保存日志信息
daemonize=uwsgi.log
# 设置虚拟环境的路径 [cd .virtualenvs]
virtualenv=/root/.virtualenvs/MyDjangops aux | grep uwsgi 命令可以查看uwsgi 进程这里有一个小问题,如果遇到可以看一下解决方法
问题:
执行启动后,报错信息 uwsgi: error while loading shared libraries: libpcre.so.1: cannot open shared object file: No such file or directory
解决方法:
sudo apt-get install libpcre3 libpcre3-dev # 安装需要的包
find / -name libpcre.so.3 # 找到libpcre.so.3(一般在根目录/lib/x86_64-linux-gnu下)
找到 /lib/x86_64-linux-gnu/libpcre.so.3
sudo ln -s /lib/x86_64-linux-gnu/libpcre.so.3 /usr/lib/libpcre.so.1 # 做软链接即可
仅仅使用uwsgi,首页的静态文件不能显示
解决方法:
在uwsgi前面在加一个nginx服务器
nginx中进行配置
如果是动态请求,转交请求给uwsgi
如果是静态请求,提前把项目用到的静态文件放到nginx所在电脑的某个目录中
根据配置,nginx就会去目录下方找到静态文件,直接返回给用户

```[uwsgi]# 使用nginx链接时使用socket=127.0.0.1:8080# 直接做web服务器使用 python manage.py runserver ip:port# http=127.0.0.1:8080# 项目目录 [pwd查看 直接填,不需要引号]chdir=# 项目中wsgi.py文件的目录,相对于项目目录wsgi-file=# 指定启动的工作进程数processes=4# 指定工作进程中的线程数threads=2# 进程中,有一个主进程master=True# 保存启动之后主进程的pidpidfile=uwsgi.pid# 设置uwsgi后台运行, uwsgi.log 保存日志信息daemonize=uwsgi.log# 设置虚拟环境的路径 [cd .virtualenvs]virtualenv=```/etc/nginx/sites-available/default```http{ server { listen 80; server_name localhost; location / { # 包含uwsgi的请求参数 include uwsgi_params; # 转交请求给uwsgi uwsgi_pass 127.0.0.1:8000 # uwsgi服务器的ip:port } }}```default 配置信息,加了静态文件处理【静态文件处理请继续往下看】,可以参考一下 ```
upstream MyDjango {
server 127.0.0.1:8000;
}server { listen 80; server_name localhost; location / { include uwsgi_params; uwsgi_pass MyDjango; } location /static { alias /var/www/MyDjango/static; }}```ps aux | grep nginx # 查看是否有nginx进程
http{
server {
listen 80;
server_name localhost;
location / {
# 包含uwsgi的请求参数
include uwsgi_params;
# 转交请求给uwsgi
uwsgi_pass 127.0.0.1:8080 # uwsgi服务器的ip:port;
}
# 请求的路径中以static开头,就匹配下列地址
location /static {
# 指定静态文件存放的目录
alias 目录 例如: /var/xxx/static;
/var/www/MyDjango/static;
}
}
}```# settings.py 中设置STATIC_ROOT=收集的静态文件路径 例如: /var/xxx/static# 例如,我的路径为 STATIC_ROOT = '/var/www/MyDjango/static'````sudo mkdir -p /var/www/MyDjango/static`> 普通用户没有权限,需要修改文件权限
>> sudo chmod 777 /var/xxx/static/ /etc/init.d/nginx reload
到这里,项目就部署完成了,还有其他需求可以继续往下看。
如当用户访问 127.0.0.1 时,在nginx 中配置把这个请求转发给 172.10.179.115:80(nginx)服务器,让这台服务器提供静态页面
```http{ server { listen 80; server_name localhost; location / { # 包含uwsgi的请求参数 include uwsgi_params; # 转交请求给uwsgi uwsgi_pass 127.0.0.1:8080 # uwsgi服务器的ip:port; } # 请求的路径中以static开头,就匹配下列地址 location /static { # 指定静态文件存放的目录 alias 目录 例如: /var/xxx/static; } # 等号为精确匹配 location = / { # 传递请求给静态文件服务器上的nginx proxy_pass http://ip; } }}```
```http{ # 名称随便起 upstream ruochen { server 127.0.0.1:8080; server 127.0.0.1:8081; } server { listen 80; server_name localhost; location / { # 包含uwsgi的请求参数 include uwsgi_params; # 转交请求给uwsgi # uwsgi_pass 127.0.0.1:8080 # uwsgi服务器的ip:port; uwsgi_pass ruochen; # 上面名字是啥,这里就是啥 } # 请求的路径中以static开头,就匹配下列地址 location /static { # 指定静态文件存放的目录 alias 目录 例如: /var/xxx/static; } # 等号为精确匹配 location = / { # 传递请求给静态文件服务器上的nginx proxy_pass http://ip; } }}```原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。