重装系统之后的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
就可以开始进行开发了。