首页 > 其他分享 >重装系统之后的Django项目配置(WSL)

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

时间:2023-04-04 19:45:08浏览次数:45  
标签:virtualenv sudo 重装系统 WSL Django 虚拟环境 mysql 安装

宇航员

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

升级固态硬盘之后,只能重装系统,这样一来就得重新来配置项目的开发环境。

Linux环境下

Django项目需要用到python解释器,在开发过程中,不同的项目可能会用到不同版本的库,为了防止环境下包的版本冲突,选择在windows的linux子环境中来安装多版本的python,通过virtualenv来生成相互隔离的虚拟环境。

开启WSL功能

在安装之前,由于windows默认是关闭WSL功能的,所以需要先开启该功能。

这边有两种方法,都可以开启,不过重点是开启之后需要重启电脑才可以生效

  • 第一种是直观一点的方法

开启WSL功能

打开设置里的应用和功能

image-20230403112835703

点击右侧的相关设置提示的程序和功能

接着点左侧的启用或关闭windows功能

image-20230403113044997

在列表里找到并勾选适用于Linuxwindows子系统选项,确定之后重启电脑。

  • 第二种是微软官方给出的命令方法

WSL安装

管理员身份在powershell中运行这条命令即可打开。

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
安装WSL

开启上面功能之后就可以安装子环境了,直接在微软商店里搜索ubuntu就可以看到,这里选择18.05版本进行安装。

image-20230404165926953

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

image-20230404170443478

安装mysql-server

安装mysql

首先是更新一下软件源:

sudo apt-get update
sudo apt-get upgrade

通过apt命令安装mysql

sudo apt-get install mysql-server mysql-client

这边安装完之后可能会碰到一个进入数据库的错误(参考文章

image-20230404171835659

博主用下面的命令给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

image-20230404172938034

这边的mysql_update中的userpassword就是生成的默认账号,用该账号进入之后修改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报错(参考文章

img

这里看到是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进入解释器配置

image-20230404181146651

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

image-20230404181419528

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

image-20230404181524433

之后在python interpreter处选择刚才配置的WSL虚拟环境的解释器

打开项目的settings.py文件,由于Django需要配置连接数据库的ip这里的HOST即为Linux虚拟子环境的IP地址,打开Linux shell通过命令即可查看

ifconfig

image-20230404181840650

至此,项目环境配置完成,通过PyCharm就可以开始进行开发了。

参考文档

标签:virtualenv,sudo,重装系统,WSL,Django,虚拟环境,mysql,安装
From: https://www.cnblogs.com/hhhhuaz/p/17287703.html

相关文章

  • Django外键引用User模型时显示username的解决方法
    问题需求:在DjangoAdmin后台模型管理中,引用User外键的字段,显示的是username(用户名)。下拉菜单要显示姓名(last_name和first_name,外加username保持唯一性、可辨别性)。使用代理模型(proxymodel)fromdjango.dbimportmodelsfromdjango.contrib.auth.modelsimportUser#创建代......
  • WSL2 使用windows usb设备
    1、Windows安装wingetinstall--interactive--exactdorssel.usbipd-win2、WSL安装sudoaptinstalllinux-tools-generichwdatasudoupdate-alternatives--install/usr/local/bin/usbipusbip/usr/lib/linux-tools/*-generic/usbip203、附加usb设备usbipdwsllis......
  • django笔记2
    Django开发主题:员工管理系统1.新建项目2.创建apppythonmanage.pystartappapp01注册app:3.设计表结构(django)fromdjango.dbimportmodelsclassDepartment(models.Model):"""部门表"""title=models.CharField(verbose_name='标......
  • Django获取本地ip
    importsocketdefget_local_ip():"""获取本机IP地址:通用"""try:s=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)s.connect(('8.8.8.8',80))ip=s.getsockname()[0]fina......
  • Django笔记十五之in查询及date日期相关过滤操作
    这一篇介绍关于范围,日期的筛选inrangedateyearweekweekdayquarterhour1、inin对应于MySQL中的in操作,可以接受数组、元组等类型数据作为参数:Blog.objects.filter(id__in=[1,2,3])对应的SQL是:select*fromblog_blogwhereidin(1,2,3);字符串也可以作......
  • Windows 11 如何安装 WSL2
    安装WSL2需要满足以下要求:64位版本的Windows10,包括:家庭版、专业版、企业版或教育版,版本号1903或更高版本,或者WindowsServer2019或更高版本。启用了WSL的选项。至少4GB的RAM在Windows11上安装WSL2的步骤如下:打开WindowsPowerShell作为管理员......
  • python Django中的cookies和session会话保持技术
    cookies和session都是为了保持会话状态而诞生的两个存储技术会话定义:从打开浏览器访问一个网站,到关闭浏览器结束此次访问,称之为一次会话HTTP协议是无状态的,导致会话状态难以保持Cookies-定义cookies是保存在客户端浏览器上的存储空间Cookies特点......
  • python Django的admin后台建设
    什么是admin管理后台django提供了完善的后台管理数据库的接口,可供开发过程中调用和测试使用django会搜集所有已注册的模型类,为这些模型类提供数据管理界面,供开发者使用admin配置步骤1、创建后台管理账号-该账号为管理后台最高权限账号—注意:可以创建多个超级用户pytho......
  • Django自动插入登录用户用户名
    在Django管理界面中我想在发布时自动插入登录用户名和博客文章,目前我已经在每个用户的下拉菜单中显示每个用户选择但显然这不是很好,所以我想它自动输入这个。自动插入登录用户用户名在Django这里是我的代码:models.py从django.db进口车型从django.contrib.auth.models导入用户......
  • Django笔记十四之统计总数、最新纪录和空值判断等功能
    本篇笔记将介绍一些Django查询中统计总数、最新纪录和空值判断等功能。countin_bulklatest、earliestfirst、lastexistscontains、icontainsgt、gte、lt、ltestartswith、istartswithisnull1、count返回查询的QuerySet的总数。比如想查询Blog下name='hunte......