Ubuntu里使用virtualenv改变当前python版本使得Django能正确显示中文网页

YOLOv8 PCB缺陷检测系统全流程实战:从开发到UI展示详解 毕设路上难免有波折,但只要跟着这个教程把“数据集处理、模型训练、UI开发”每一步都落实,你就已经超越了大多数同学。这个“PCB缺陷检测系统”既有技术深度(YOLOv8是工业级主流算法),又有工程价值(解决电子制造的实际痛点),还具备出色的可视化展示——这样的毕设,拿高分是水到渠成的事。 阅读详情

背景介绍:

在项目开发初期,在Ubuntu使用的是python2.7来配合Django学习建站,后来在网站里添加中文内容的时候,网页因为python2.7的缘故无法解码中文字符而无法正确显示。

(ll_env) cheng@cheng-virtual-machine:~/Django_project/learning_logs$ pip list
Package       Version
------------- -------
Django        1.11.20
pip           19.0.3 
pkg-resources 0.0.0  
pytz          2018.9 
setuptools    40.8.0 
wheel         0.33.1

(ll_env) cheng@cheng-virtual-machine:~/Django_project$ python -V
Python 2.7
 

Django version 1.11.20
python version 2.7

解决方案

默认情况下,python2.7使用的不是utf-8字符串解码,而python3.x使用的是utf-8.
所以我这里的想法是,将当前的虚拟机的python版本升级到python3.x。

解决步骤

1.首先deactivate 当前的虚拟机环境
安装了virtualenv的话,在终端输入deactivate即可。

2.删除虚拟机的环境目录
rm -rf <虚拟环境目录文件名>

3.新建虚拟机环境,设定python版本为python3
virtualenv -p /usr/bin/python3 <目录名>
如下

cheng@cheng-virtual-machine:~/Django_project$ virtualenv -p /usr/bin/python3 ll_env
Already using interpreter /usr/bin/python3
Using base prefix '/usr'
New python executable in /home/cheng/Django_project/ll_env/bin/python3
Also creating executable in /home/cheng/Django_project/ll_env/bin/python
Installing setuptools, pkg_resources, pip, wheel...done.

4.激活虚拟环境

cheng@cheng-virtual-machine:~/Django_project$ source ll_env/bin/activate

5.查看当前虚拟环境python版本

(ll_env) cheng@cheng-virtual-machine:~/Django_project$ python -V
Python 3.6.7

6.查看虚拟环境安装包

(ll_env) cheng@cheng-virtual-machine:~/Django_project$ pip list
Package       Version
------------- -------
pip           19.0.3 
pkg-resources 0.0.0  
setuptools    40.8.0 
wheel         0.33.1 

发现没有安装Django, pip install Django 安装Django

(ll_env) cheng@cheng-virtual-machine:~/Django_project$ pip install Django
Collecting Django
  Downloading https://files.pythonhosted.org/packages/c7/87/fbd666c4f87591ae25b7bb374298e8629816e87193c4099d3608ef11fab9/Django-2.1.7-py3-none-any.whl (7.3MB)
    100% |████████████████████████████████| 7.3MB 4.7MB/s 
Collecting pytz (from Django)
  Using cached https://files.pythonhosted.org/packages/61/28/1d3920e4d1d50b19bc5d24398a7cd85cc7b9a75a490570d5a30c57622d34/pytz-2018.9-py2.py3-none-any.whl
Installing collected packages: pytz, Django
Successfully installed Django-2.1.7 pytz-2018.9

7.更新一下数据库
python manage.py migrate
出现如下告错TypeError: __init__() missing 1 required positional argument: 'on_delete'

(ll_env) cheng@cheng-virtual-machine:~/Django_project$ python manage.py migrate
Traceback (most recent call last):
 .........
  File "/home/cheng/Django_project/learning_logs/models.py", line 15, in <module>
    class Entry(models.Model):
  File "/home/cheng/Django_project/learning_logs/models.py", line 17, in Entry
    topic = models.ForeignKey(Topic)
TypeError: __init__() missing 1 required positional argument: 'on_delete'

8.原因当前的Django版本已有之前的1.x升级到2.x, 需要修改外键的参数,如下

from __future__ import unicode_literals

from django.db import models

# Create your models here.
class Topic(models.Model):
    """用户学习的主题"""
    text = models.CharField(max_length=200)
    date_added = models.DateTimeField(auto_now_add=True)

    def __str__(self):
        """返回模型的字符串表示"""
        return self.text
class Entry(models.Model):
    """学到的有关某个主题的具体知识"""
    topic = models.ForeignKey(Topic,on_delete=models.CASCADE) ##在Django1.x版本会默认参数on_delete=models.CASCADE, 而在Django2.x需要指定
    text = models.TextField()
    date_added = models.DateTimeField(auto_now_add=True)

    class Meta:
        verbose_name_plural = 'entries'

    def __str__(self):
        """返回模型的字符串表示"""
        return self.text[:50] + "..."

9.修改后再次迁移数据库,成功。
参考:https://www.cnblogs.com/phyger/p/8035253.html

(ll_env) cheng@cheng-virtual-machine:~/Django_project$ python manage.py migrate
Operations to perform:
  Apply all migrations: admin, auth, contenttypes, learning_logs, sessions
Running migrations:
  Applying admin.0003_logentry_add_action_flag_choices... OK
  Applying auth.0009_alter_user_last_name_max_length... OK

10.尝试打开网页,成功!

10、皮肤 - 神经记录实验全流程解析 本博客详细介绍了皮肤-神经记录实验的全流程,涵盖实验所需的材料准备和具体操作方法。内容包括细胞外记录设备的设置、合成间质液(SIF)的制备与调节、小鼠后爪皮肤和胫神经的手术解剖步骤、清洁解剖后的记录准备、纤维分离与感受野识别方法,以及神经纤维机械响应的测量。该实验为研究神经纤维的活动与功能提供了重要的技术支持,适用于神经科学研究领域。 阅读详情

相关推荐

用Arduino和RC522模块DIY一个NFC门禁卡复制器(附完整代码)

本文详细介绍了如何利用Arduino和RC522模块DIY一个NFC门禁卡复制器,包括硬件连接、软件配置、数据读写技术及完整代码实现。通过本教程,电子爱好者可以深入了解NFC技术,并构建自己的智能门禁系统,适用于家庭安全、办公场所等多种场景。

weixin_33704591的博客 499

linux下创建virtualenv时指定python版本

linux下创建virtualenv时指定python版本virtualenv是python开发中一个重要的工具,它可以帮助我们创建一个干净的python解释环境,创建虚拟环境时,这个虚拟环境的python版本往往是系统默认的2.x版本.别急,我们只需要一条简单的命令就可以创建一个python3.x的虚拟环境virtualenv -p /usr/bin/python3 py3env其中,py3en...

Heyll__的博客 1523

eNSP安装教程

eNSP安装教程一、安装eNSP1、先安装依赖组件2、安装eNSP主程序eNSP+V100R003C00SPC100+Setup ---不要安装在中文路径下3、安装完成后注册设备 一、安装eNSP 程序包位置:https://drive.weixin.qq.com/s?k=AOgAQQfOAAsw1wAKEgAAcAbgbSAKQ 1、先安装依赖组件 依赖组件: WinPcap_4_1_3 —直接下一步,但不要安装在中文路径下 Wireshark_v3.4.6 或者wireshark-win3

qimowei的博客 8667

ubuntu 20.04 系统下Python虚拟环境的安装和使用教程

这篇文章主要介绍了ubuntu系统下Python虚拟环境的安装和使用教程,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下 前言:进行python项目开发的时候,由于不同的项目需要使用不同的资源包和相关的配置,因此创建多个python虚拟环境,在虚拟环境下开发就显得很有必要。 安装虚拟环境 •步骤: •打开Linux终端(快捷键Ctrl+Alt+T),输入命令: 1 2 sudo apt install python-...

0x8g1T9E- 1万+

永磁同步电机解耦控制实战:从电流反馈到内模解耦的算法演进与选型指南

本文深入探讨了永磁同步电机高性能驱动中的核心挑战——交叉耦合问题,并对比分析了电流反馈解耦和内模解耦两大主流算法的原理、性能与适用场景。文章指出,电流反馈解耦动态响应快但对参数敏感,内模解耦鲁棒性更强但略有滞后,为工程师在不同应用需求下的算法选型提供了清晰的实战指南。

weixin_29039773的博客 263

时间序列预测 | Python实现ARIMAX和VARMAX时间序列数据预测

时间序列预测 | Python实现ARIMAX和VARMAX时间序列数据预测 目录时间序列预测 | Python实现ARIMAX和VARMAX时间序列数据预测基本介绍ARIMAXVARVARMAVARMAXSESHWES参考资料 基本介绍 本文介绍ARIMAX、VAR、VARMA和VARMAX基本概念及其Python程序设计。 ARIMAX 具有外源回归量的自回归整合移动平均值(ARIMAX)是 ARIMA 模型的扩展,其还包括外生变量的建模。 外生变量也称为协变量,可以被认为是并行输入序列,其在与

前程算法屋的博客 6688

Django+uwsgi+nginx+ubuntu部署出现中文乱码

需要设置uwsgi.ini配置文件的编码,重启就行 如果使用screen需要重启一个窗口,并且进入项目的虚拟环境,就行了

Mantoo123的博客 603

Android Jetpack 最全面试题及参考答案

要使用 WorkManager 定义一个异步任务,以下是详细步骤。首先,需要创建一个继承自 Worker 类的自定义类,这个类代表了要执行的具体任务逻辑。// 在这里编写具体的任务逻辑,比如从网络下载文件try {在上述代码中,doWork方法就是任务的核心执行逻辑所在,这里模拟了从给定的 URL 下载文件到本地的操作,若下载成功返回,若出现异常则返回。然后,在需要调度任务的地方,比如在某个 Activity 或者 Fragment 中,通过构建 WorkRequest 来安排任务执行。

大模型大数据攻城狮的专栏 1894

django环境搭建

最近需要搭建一下适合python Django开发的环境 Window 10 平台 pip 升级 python –m pip install –upgrade pip Virtualenv 安装 pip install virtualenv virtualenvwrapper 安装 pip install virtualenvwrapper-win 设置 WORK_HOME 环境变量 默认路径:C:\Users\admin\Envs WORKON_HOME = D:\test\vritualenv win1

asd_112008的博客 542

第11节:GPU 线程层级:线程、线程块、网格

层级标识变量功能线程threadIdx执行单元,处理数据线程块blockIdx管理多个线程,提供共享内存网格管理多个 blockGPU 编程中,合理安排线程层级,是提升性能的关键。

yumeiguo的博客 210

电源芯片MPQ3431A

MPQ3431A是一款具有宽输入范围的固定频率为450kHz的高度集成的升压转换器,其输入电压低至2.7V,采用恒定关断时间(COT)的控制拓扑,可提供快速的瞬态响应。芯片支持通过MODE管脚配置PSM(pulse-skip mode)、FCCM(forced continuous conduction mode)和USM(ultrasonic mode);还支持通过电流限制配置来达到精确的过流保护;同时芯片欠压保护(UVLO)和过温保护(OTP)。MPQ3431A采用QFN-13(3mmx4mm)封装。保

qflook的博客 1556

ubuntu部署django详细教程

教程使用的软件版本:Ubuntu 18.04.1 LTS,django2.0,Python 3.6.5、nginx-1.13.7、uWSGI (2.0.17.1),Ubuntu是纯净的,全新的。下面我们开始来部署。 文章转自django中文网:Ubuntu部署Django项目方法详解 如果觉得看文字没意思,想看视频教程的,请点击这里:Django项目部署视频教程 一、更新操作系统和安装依...

weixin_30409849的博客 441

Airtest进阶使用篇-提高脚本稳定性+批量运行脚本

Airtest进阶篇,主要分享如何提高脚本稳定性+如何批量运行脚本生成测试报告!

程序员小杨哥的博客 2569

django 中文显示

Django 设置   django 中文显示   2012-04-14 19:03:33|  分类: 默认分类 |  标签: |举报 |字号大中小 订阅 1 在settings.py中将LANGUAGE_CODE = 'zh-CN'后,django中的内置变量等将显示中文,如时间:四月 14, 2012, 7:01 p.m, 用四

东方匠心的专栏 6008

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

django 模板的html文件有中文,显示有问题。

解决方法:把Html另存为 Utf-8 格式

春暖鱼跳 1311

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

ubuntu17.04更改下载源和python配置virtualenv环境

创建虚拟环境运行ipython >>>pip install virtualenv >>>virtualenv venv >>>source venv/bin/activate123 这时便已经进入了虚拟环境,现在便可使用pip install ipython 安装。 当你想退出这个虚拟环境时,使用命令 >>>deactivate

qiqzhang的博客 1026

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

如何创建一个简单网页

我们已经基本熟悉了HTML的格式,现在我们来尝试一下创建一个简单的网页。1.创建一个.html格式的文件选择一个文本编辑软件,我这里用的是Notepad++.在工具栏选择“language”,勾选html,这个时候软件就知道你在编辑html格式的文件了,你在输入元素的时候按“Tab”键它就会自动帮你补全,输入块元素,内敛元素的时候就会帮你在元素的开始和结束符自动匹配并标记。2.编辑html内容下面我

Cengineering的博客 1万+

Github pages+HEXO+域名绑定搭建个人博客

1.搭建环境 windows 7(64 位) $ git-2.15.1-64-bit $ node-v8.9.3-x64   如果上述软件已安装,请跳过。没有的,下载安装1.git 下载安装:(https://git-for-windows.github.io/)  安装好后查看版本:git version2.Node.js下载安装(https://nodejs.org/en/download/)

Cengineering的博客 2394

Freecodecamp学习实录(每日更新,欢迎交流)

Say Hello to HTML Element Incomplete 1 h1>Helloh1> 1就是一个HTML元素,h1是header1的简写,意思是一级标题。 大部分元素都有一个开始标记和一个结束标记。 开始标记像这样: 结束标记像这样: Headline with the h2 Element Incomplete h是英文header标题的缩写,标题无

Cengineering的博客 1979

什么是HTML

什么是HTML  HTML是超文本标记语言(hypertext markup language), 我现在用的编辑器叫优快云-markdown, 它是不是跟提到的什么markup啥的有点相似呢?确实如此,不仅可以直接在上面用<h1> </h1>来表示一级标题,其它的html语言也都支持, 比如 文件头<head> </head>,标题<title> </title>,段落标记<p> </p>, 斜

Cengineering的博客 445

PyCharm 配置 Python 虚拟环境:virtualenv/venv 与 Conda 实操对比

venv胜在轻量,创建速度快,只管理Python包,普通的后端、脚本、工具类项目用它完全够用,也没有额外的安装依赖。点添加解释器,选添加本地解释器,再选New environment,指定一下环境存放的目录,以及基础的Python版本,确认就创建完成了。我自己一直用lcjmSSL,免费申请,支持多域名、泛域名和IP证书,能自动申请、验证和部署,接口也简洁,基于Let's Encrypt、Google Trust Services这些支持ACME的可信机构,不用折腾复杂配置,挺顺手的。

osfipin note 400

AI全栈实战 | 3.9-01 爬虫入门:requests 加 BeautifulSoup 三分钟跑通,但 90% 的人栽在这 4 个“礼貌“问题上

⚠️:本文内容仅用于。请遵守目标站点的服务条款与相关法律法规,不得对目标服务造成负担,不得采集、传播个人隐私数据。技术是中性的,边界在你手里。爬虫的入门技术(requests 发请求 + BeautifulSoup 解析)三分钟就能学会。真正区分"会用爬虫"和"会做爬虫的人"的,是这篇我们跑通"请求→解析→存储"的最小闭环,然后重点把"合规与礼貌"这根弦给你绷上。

源码获取 | 运行部署 | 定制二开修改,如果回复不及时请耐心等待,请见谅。 392

从一段视频到可漫游的 4D 有声场景:思路拆解与最小复现手记

只需一段手机视频,你就能生成可"走进去"的 4D 有声场景:转头时狗叫声方向随之变化,走近时声音更清晰。本文拆解 Video-to-4DAVScene 的核心思路,手把手带你用几十行 Python 搭出最小管线,把视频中的运动物体变成带空间位置的声源,并附上三个真实踩坑的排障经验,代码可直接跑。🎧

helloagent的博客 229

Python+Agent入门笔记(二):列表推导式、模块和异常,这些写 Agent 前得会

接上一篇《Python+Agent入门笔记(一)》。基础语法跑通之后,这篇聊几块日常写脚本绕不开的东西。还是按 JS/Go 开发者的视角写,尽量记录我实际卡过的地方。

qq_41241612的博客 430

详解Python条件语句

在 Python 中,if...else 是一种条件语句,可以根据给定的条件执行不同的操作。这个语句通常用于控制程序的流程。

2601_96798737的博客 205
上一篇: SQL学习(全文本搜索)
下一篇: Python Tkinter里取回button 回调函数的变量
Cengineering
博客等级 码龄13年 51粉丝 38原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值