重装系统之后的Django项目配置(WSL)

重装系统之后的Django项目配置(WSL)
升级固态硬盘之后,只能重装系统,这样一来就得重新来配置项目的开发环境。
Linux环境下
Django项目需要用到python解释器,在开发过程中,不同的项目可能会用到不同版本的库,为了防止环境下包的版本冲突,选择在windows的linux子环境中来安装多版本的python,通过virtualenv来生成相互隔离的虚拟环境。
开启WSL功能
在安装之前,由于windows默认是关闭WSL功能的,所以需要先开启该功能。
这边有两种方法,都可以开启,不过重点是开启之后需要重启电脑才可以生效
- 第一种是直观一点的方法
打开设置里的应用和功能

点击右侧的相关设置提示的程序和功能
接着点左侧的启用或关闭windows功能

在列表里找到并勾选适用于Linux的windows子系统选项,确定之后重启电脑。
- 第二种是微软官方给出的命令方法
管理员身份在powershell中运行这条命令即可打开。
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
安装WSL
开启上面功能之后就可以安装子环境了,直接在微软商店里搜索ubuntu就可以看到,这里选择18.05版本进行安装。

安装成功之后打开ubuntu的窗口,第一次打开需要等待一下,等待响应之后,需要设置Linux子系统的用户名和密码,设置完成之后即可完成安装,安装成功之后可以在桌面打开:按住Shift+单击鼠标右键,可以看到在此处打开Linux shell窗口,点击即可在桌面打开子环境的窗口。

安装mysql-server
首先是更新一下软件源:
sudo apt-get update
sudo apt-get upgrade
通过apt命令安装mysql
sudo apt-get install mysql-server mysql-client
这边安装完之后可能会碰到一个进入数据库的错误(参考文章)

博主用下面的命令给mysql加了权限
sudo mkdir -p /var/run/mysqld
sudo chown mysql /var/run/mysqld/
sudo service mysql restart
因为不清楚root账户的默认密码,这里找到了mysql生成的默认账号,用以下命令可以查看
sudo cat /etc/mysql/debian.cnf

这边的mysql_update中的user和password就是生成的默认账号,用该账号进入之后修改root的密码
use mysql;
update mysql.user set authentication_string=password('修改成你root账户的密码') where user='root' and Host ='localhost';
update user set plugin="mysql_native_password";
flush privileges;
quit;
退出重启之后用root用户登录进入
sudo service mysql restart
mysql -u root -p
可以登陆之后,通过-h + ip来通过子环境去连接windows下的数据库
mysql -u root -h [x.x.x.x] -p
如果可以连接成功即已经完成Linux环境下数据库的配置。
安装virtualenv
子环境中默认安装了python2.7和python3.6但是应该是没有安装pip包管理工具,所以需要通过下面的命令来安装
sudo apt-get install python3-pip
安装完pip之后,通过pip安装virtualenv
pip3 install virtualenv
virtualenv --version
安装成功后查询可以看到版本号,之后用virtualenv来创建一个虚拟环境
注:如果环境下有多个版本的python这时调用virtualenv就需要在命令前加上一个前缀:python3 -m virtualenv --version(比如3.6版本下装的virtualenv)
//在当前目录下创建虚拟环境
python3 -m virtualenv [progect_env]
ps:如果有多个python解释器可以指定虚拟环境中的python版本,命令如下:
python3 -m virtualenv -p [python解释器的路径:/usr/bin/python2.7] [project_env]
source [project_env]/bin/activate 进入虚拟环境
deactivate 退出虚拟环境
安装项目依赖(以labcoursedisplay为例)
进入虚拟环境
source labcoursedisplay/bin/activate
进入项目目录
cd /mnt/c/Project/Labcoursedisplay/
安装依赖
pip3 install -r requirements
在安装mysql-client1.4.0时出现一个OSError: mysql_config not found报错(参考文章)

这里看到是mysql_config的问题,输入之后报错not found也给出了解决办法,输入
sudo apt install libmysqlclient-dev
安装完成之后就可以找到mysql_config了,再去安装mysql-client就可以成功了。
至此就已经完成了Linux环境下的所有配置。
windows环境下
项目开发是在windows下的集成开发环境下进行的。Linux环境只是提供python虚拟环境用来跑Django项目。
安装node.js
因为项目是前后端分离的,前端用到了React,这里安装node.js之后就可以通过npm命令来对前端进行开发。
安装Navicat
安装mysql
这里用的版本是5.6版本,因为是用的绿色版,所以直接把压缩包解压之后即可用数据库,在重装系统之前通过Navicat把项目数据库结构和数据都备份了,同时也备份了mysql(这里是数据库中的一个叫mysql的数据库)数据库的表,也就是用户信息,因为默认是关闭远程连接的,需要去修改mysql数据库用户表中的数据才打开远程连接,具体可以参考这里,而通过备份的sql文件在Navicat中直接运行覆盖导入,既可以省去修改的过程,不过这里有个重点:在覆盖导入之后也需要运行刷新权限的语句才可以使得修改生效
FLUSH PRIVILEGES # 这一条命令是刷新mysql的权限相关表
之后就可以通过ip进行连接数据库了。
克隆项目代码
git clone [仓库地址]
安装PyCharm
配置PyCharm
安装完PyCharm之后,就可以配置开发环境了,用PyCharm打开项目,点击File->Settings->Project:LabCourseDisplay->Python Interpreter进入解释器配置

点击Add添加新的解释器,选择WSL,在路径里选到虚拟环境的bin目录下,添加python解释器的版本,点击确定,即可添加成功

添加完虚拟环境解释器之后,配置项目的解释器,选择Edit Configurations...

之后在python interpreter处选择刚才配置的WSL虚拟环境的解释器
打开项目的settings.py文件,由于Django需要配置连接数据库的ip这里的HOST即为Linux虚拟子环境的IP地址,打开Linux shell通过命令即可查看
ifconfig

至此,项目环境配置完成,通过PyCharm就可以开始进行开发了。
浙公网安备 33010602011771号