Hello World - admin
type: channel
link: https://blog.moshanghua.net/index.php/author/1/
description: admin
items: 火狐同步改国内服务器账号登录
items: 几首近期在听歌曲-洛天依游学季，歌行戏曲季
items: 洛天依歌行宇宙·无限共鸣全息演唱会
items: Django CRUD操作
items: Django 模型
items: Django DTL 模板
items: Django 基础
items: 用 Python 操作 Excel 文档（基础）
items: 管理 Python 环境
items: 【深谷Shintani】画了天依～

火狐同步改国内服务器账号登录
type: item
date: 2025-03-28T14:57:44+00:00
description: 更新升级了macOS Sequoia。某次停电后，再次打开电脑用游览器时，结果重置变崭新的初始游览器界面了....火狐在同步选项里没有“切换全球/本地服务器”的选项了。而火狐默认同步登录的是https://accounts.firefox.com（国际账号），但自己的数据又是在accounts.firefox.com.cn（国内账号）上。记录一下修改使用国内的账号服务器首先需要先在搜索框输入about:config 进入Firefox的配置页面 在配置页面中，需要找到与同步相关的配置项。这些配置项通常以identity.fxaccounts开头。 可以通过在搜索框中输入来快速找到它们。然后改变下面的三项配置identity.fxaccounts.autoconfig.uri 输入 https://accounts.firefox.com.cnidentity.fxaccounts.contextParam 改为 fx_desktop_v3identity.fxaccounts.oauth.enabled 改为 false 然后重启浏览器，就能正常使用国内的火狐账号服务器其他配置在火狐浏览器中设置打开书签时自动在新页面（新标签页）中打开browser.tabs.loadBookmarksInTabs 这个设置项决定了书签是否在新标签页中打开，把“false”将其改为“true”，这样，当你点击书签时，它们就会在新标签页中打开了。browser.tabs.closeTabByDblclick将其值改为“true”，可以双击标签页来关闭它。

几首近期在听歌曲-洛天依游学季，歌行戏曲季
type: item
date: 2025-03-12T15:07:57+00:00
description: “可是天意总将 有情人放逐”洛天依原创曲《聘书》【歌行黄梅戏篇·天仙配】 “定教这凡规俗矩 尽为骇浪冲淹！”洛天依原创曲《倒瞰清白》【歌行川剧篇·白蛇传】 “我自有我去留无怕，同天地斗法”洛天依原创《金鳞甲》【歌行豫剧篇单曲】天星问【2025拜年纪单品】“攒我千年，赐你一眼，余生都看遍”【洛天依原创曲】《不堪人间》【2025虚拟歌手贺岁纪单品】献给历久弥新的中华戏曲｜戏游九州UP主调校【洛天依民族腔】突破天灵盖！《九儿》|“高粱熟来红满天，九儿我送你去远方”【原创PV付】【洛天依】《月光》|“月光色女子香，泪断剑情多长？”【原创PV付】【洛天依】《世界赠予我的》| 2025年总台春晚特别单曲【原创PV付】【洛天依戏腔】《赤伶》|“戏幕起戏幕落谁是客？”【原创PV付】

洛天依歌行宇宙·无限共鸣全息演唱会
type: item
date: 2024-10-06T15:29:57+00:00
description: 2024 洛天依歌行宇宙·无限共鸣全息演唱会之前预热时就有注意到，期间还多次起念头想去体验一下现场来着，奈何...算了，期待日后有机会能支持一场。图片来自官号，也算是云体验了一番了，从昨晚开始就刷到了些演唱会的单曲片段，凑起来也算是看了大半场演唱会了，23333日常在循环着听的万古生香、万分之一的光、夏虫、蝴蝶、大哉乾元、三月雨、歌行四方、上山岗、心印、光与影的对白、为了你唱下去等歌曲居然都在其中，挺惊喜和意外的。这版三月雨挺好听的，还有就是下半场的几首歌伴随着全场的合唱，听着也别有一番心情！！！忙碌一天回来，本想翻出稍后再看里的几个片段来重温一下，结果躺列表里的视频不翼而飞了，点开历史记录一看，视频失效了，好吧....还是逃不掉给B站删了的命运，还有一份约等于拍摄了全场的视频都还没来得及看，也没有了，而且，发现那老哥还给封号关小黑屋了..算了，等 8 号的官方回放视频吧，只是这份资源应该就没有现场的一些声音了，而且还是收费的..附上部分花絮和还能听的单曲片段（虽然不好，但感谢不删之恩！）：在天依展演奏V家热曲串烧，再度引发全场大合唱！洛天依无限共鸣·开场花絮（夜场自用）洛天依无限共鸣全息演唱会安可环节洛天依演唱会《三月雨》【4K杜比视界】三月雨-洛天依无限共鸣演唱会源流万世，大哉乾元[洛天依演唱会]《夏虫》——感动的不会只有我一个人[洛天依演唱会]《歌行四方》——果然合唱赛高！！！洛天依演唱会 光与影的对白合唱 日场洛天依演唱会《上山岗》【自用留存】上山岗-洛天依演唱会【4K 60fps】《上海·洛天依2024无限共鸣全息演唱会》上山岗（内场A1二排中部视角）洛天依无限共鸣全息演唱会 保留节目 《为了你唱下去》为了你唱下去这首听的不同视角的好几个片段都给删了，就这一个了...最后，真心希望咱们的小姑娘越来越好~华风夏韵，洛水天依！

Django CRUD操作
type: item
date: 2024-08-01T02:34:16+00:00
description: 在 ORM 框架中，所有模型相关的操作，比如添加/删除等，其实都是映射到数据库中一条数据的操作，因此模型操作也就是数据库表中数据的操作。首先需要创建一个模型。添加模型到数据库中。from django.db import models # Create your models here. class User(models.Model): username = models.CharField(max_length=20) password = models.CharField(max_length=100) # 表一对一,用户表和用户信息表, 常用和不常用 class UserExtension(models.Model): birthday = models.DateTimeField() university = models.CharField(max_length=200) user = models.OneToOneField("User", on_delete=models.CASCADE) class Article(models.Model): title = models.CharField(max_length=100) content = models.TextField() pub_time = models.DateTimeField(auto_now_add=True, null=True) author = models.ForeignKey( "User", on_delete=models.SET_DEFAULT, default=1, related_name="articles" ) tags = models.ManyToManyField("Tag", related_name="articles") class Tag(models.Model): name = models.CharField(max_length=100) class Comment(models.Model): content = models.TextField() origin_comment = models.ForeignKey("self", on_delete=models.CASCADE, null=True)添加一个模型实例到数据库中添加模型到数据库中，首先需要创建一个模型，创建模型的方式很简单，就跟创建普通的 Python 对象是一摸一样的。在创建完模型之后，需要调用模型的 save 方法，这样 Django 会自动的将这个模型转换成sql 语句，然后存储到数据库中。from django.shortcuts import HttpResponse def add_user(request): user = User(username="xiaoming", password="111111") # 调用save()方法：是将模型对象的数据保存到数据库表中，即在数据库表中插入一条新的记录。 user.save() return HttpResponse(f"用户 {user.username} 添加成功!")执行访问以上视图函数 add_user 就会往User这个表里面添加一条数据二次添加或者更新数据，比如创建用户时没创建UserExtension 表里的数据from django.shortcuts import HttpResponse from django.utils import timezone from .models import User, UserExtension def add_user_extension(request): # 获取已经存在的用户 try: user = User.objects.get(username="xiaoming") except User.DoesNotExist: return HttpResponse("用户 xiaoming 不存在。") # 准备要添加的扩展信息数据 birthday = "2024-08-01" university = "Example University" # 创建或更新 UserExtension 数据 user_extension, created = UserExtension.objects.get_or_create( user=user, defaults={'birthday': birthday, 'university': university} ) if not created: # UserExtension 已经存在，更新数据 user_extension.birthday =…

Django 模型
type: item
date: 2024-07-31T12:37:09+00:00
description: Django数据库MySQL驱动程序安装使用 Django 来操作 MySQL ，实际上底层还是通过 Python 来操作的。因此想要用 Django 来操作 MySQL ，首先还是需要安装一个驱动程序。在 Python3 中，驱动程序有多种选择。比如有 pymysql 以及 mysqlclient 等。这里我们就使用 mysqlclient 来操作。mysqlclient 安装非常简单pip install mysqlclient配置连接数据库在操作数据库之前，首先要连接数据库，这里以配置 MySQL 为例。Django 连接数据库，不需要单独的创建一个连接对象。只需要在 settings.py 文件中找到DATABASES字段做好数据库相关的配置就可以了。DATABASES = { "default": { # 数据库引擎（是mysql还是oracle等） "ENGINE": "django.db.backends.mysql", # 数据库的名字 "NAME": "database_django", # 连接mysql数据库的用户名 "USER": "root", # 连接mysql数据库的密码 "PASSWORD": "root", # mysql数据库的主机地址 "HOST": "127.0.0.1", # mysql数据库的端口号 "PORT": "3306", } }其中 engine 的选择还有以下：'django.db.backends.postgresql''django.db.backends.mysql''django.db.backends.sqlite3''django.db.backends.oracle'在Django中操作数据库在 Django 中操作数据库有两种方式。第一种方式就是使用原生 sql 语句操作，第二种就是使用 ORM 模型来操作。本笔记记录使用ORM 模型来操作，这里稍微记录一下原生 sql 语句操作在 Django 中使用原生 sql 语句操作其实就是使用 python db api 的接口来操作。如果你的 mysql 驱动使用的是 pymysql ，那么你就是使用 pymysql 来操作的，只不过 Django 将数据库连接的这一部分封装好了，我们只要在 settings.py 中配置好了数据库连接信息后直接使用 Django 封装好的接口就可以操作了。# 使用django封装好的connection对象，会自动读取settings.py中数据库的配置信息 from django.db import connection # 获取游标对象 cursor = connection.cursor() # 拿到游标对象后执行sql语句 cursor.execute("select * from book") # 获取所有的数据 rows = cursor.fetchall() # 遍历查询到的数据 for row in rows: print(row)以上的 execute 以及 fetchall 方法都是 Python DB API 规范中定义好的。ORM模型介绍ORM ，全称 Object Relational Mapping ，中文叫做对象关系映射，通过 ORM 我们可以通过类的方式去操作数据库，而不用再写原生的SQL语句。通过把表映射成类，把行作实例，把字段作为属性， ORM 在执行对象操作的时候最终还是会把对应的操作转换为数据库原生语句。创建ORM模型ORM 模型一般都是放在 app 的 models.py 文件中。每个 app 都可以拥有自己的模型。并且如果这个模型想要映射到数据库中，那么这个 app 必须要放在 settings.py 的 INSTALLED_APP 中进行安装。以下是写一个简单的书籍 ORM 模型。# 从Django的 django.db 模块中导入了 models 模块 # models 模块包含了用于定义各种数据库字段类型和模型的类 from django.db import models # 定义了一个名为 Book 的类，并继承自 models.Model # 继承 models.Model 表示这个类是一个Django模型，将映射到数据库中的一个表 class Book(models.Model): # 包含四个字段：name、author、pub_time 和 price name = models.CharField(max_length=20,null=False) author = models.CharField(max_length=20,null=False) pub_time = models.DateTimeField(…

Django DTL 模板
type: item
date: 2024-07-27T12:32:22+00:00
description: 目前市面上有非常多的模板系统，其中最知名最好用的就是DTL和Jinja2。 DTL 是 Django Template Language 三个单词的缩写，也就是Django自带的模板语言。当然也可以配置Django支持Jinja2等其他模板引擎，但是作为Django内置的模板语言，和Django可以达到无缝衔接而不会产生一些不兼容的情况。DTL与普通的HTML文件的区别DTL模板是一种带有特殊语法的HTML文件，这个HTML文件可以被Django编译，可以传递参数进去，实现数据动态化。在编译完成后，生成一个普通的HTML文件，然后发送给客户端。渲染模板渲染模板有多种方式。列举两种常用的方式。render_to_string ：找到模板，然后将模板编译后渲染成Python的字符串格式。最后再通过HttpResponse 类包装成一个 HttpResponse 对象返回回去。示例代码如下：from django.template.loader import render_to_string from django.http import HttpResponse def book_detail(request,book_id): html = render_to_string("detail.html") return HttpResponse(html)django还提供了一个更加简便的方式，直接将模板渲染成字符串和包装成 HttpResponse 对象一步到位完成。示例代码如下：from django.shortcuts import render def book_list(request): return render(request,'list.html')模板查找路径配置：在项目的 settings.py 文件中。有一个 TEMPLATES 配置，这个配置包含了模板引擎的配置，模板查找路径的配置，模板上下文的配置等。模板路径可以在两个地方配置。DIRS ：这是一个列表，在这个列表中可以存放所有的模板路径，以后在视图中使用 render 或者render_to_string 渲染模板的时候，会在这个列表的路径中查找模板。APP_DIRS ：默认为 True ，这个设置为 True 后，会在 INSTALLED_APPS 的安装了的 APP 下的templates 文件夹中查找模板。TEMPLATES = [ { .... # 定义存放模板的目录，这里使用 templates 目录 "DIRS": [BASE_DIR / "templates"], "APP_DIRS": True, "OPTIONS": { ... }, ] 查找顺序：比如代码 render('list.html') 。先会在 DIRS 这个列表中依次查找路径下有没有这个模板，如果有，就返回。如果 DIRS 列表中所有的路径都没有找到，那么会先检查当前这个视图所处的 app 是否已经安装，如果已经安装了，那么就先在当前这个 app 下的 templates 文件夹中查找模板，如果没有找到，那么会在其他已经安装了的 app 中查找。如果所有路径下都没有找到，那么会抛出一个 TemplateDoesNotExist 的异常。DTL模板语法变量：模板中可以包含变量， Django 在渲染模板的时候，可以传递变量对应的值过去进行替换。变量的命名规范和 Python 非常类似，只能是阿拉伯数字和英文字符以及下划线的组合，不能出现标点符号等特殊字符。变量需要通过视图函数渲染，视图函数在使用 render 或者 render_to_string 的时候可以传递一个context 的参数，这个参数是一个字典类型。以后在模板中的变量就从这个字典中读取值的。示例代码如下：# views.py代码 def profile(request): return render(request,'profile.html',context={'username':'陌上花'}) # profile.html模板代码 {{ username }} 除了变量，还可以是字典，列表以及对象。模板中的变量同样也支持 点(.) 的形式。# views.py代码 def info(request): # 1. 普通的变量 username = "悦来小陌" # 2. 字典类型 book = {"firm": "悦来集团", "name": "henry"} # 3. 列表 books = [ {"name": "全职高手", "author": "蝴蝶蓝"}, {"name": "斗破苍穹", "author": "天蚕土豆"}, ] # 4. 对象 class Person: def __init…

Django 基础
type: item
date: 2024-07-27T09:08:47+00:00
description: Django5 入门Django相关的网址Github源代码：https://github.com/django/djangoDjango官网：https://www.djangoproject.com/安装Django通过 pip install django 安装 django ，本文以 Django 5.0.3 版本进行记录。pip install django #如需要指定版本用这个命令 pip install django==5.0.3 初始化 Django 项目创建项目使用命令： django-admin startproject [项目名称] 即可创建。初始化一个新的 Django 项目，例如：django-admin startproject startdjango 创建应用（app）：一个项目类似于是一个架子，但是真正起作用的还是 app 。在终端进入到项目所在的路径，然后执行 python manage.py startapp [app名称] 创建一个app。运行Django项目进入项目，通过命令行的方式： python manage.py runserver这样可以在本地访问项目网站，默认端口号是 8000 ，在浏览器中通过 http://127.0.0.1:8000/ 来访问cd startdjango python manage.py runserver如果想要修改端口号，那么在运行的时候可以指定端口号，python manage.py runserver 9000这样就可以通过9000端口来访问python manage.py runserver 9000项目结构介绍 manage.py：以后和项目交互基本上都是基于这个文件。一般都是在终端输入python manage.py [子命令]。可以输入python manage.py help看下能做什么事情。除非你知道你自己在做什么，一般情况下不应该编辑这个文件。 settings.py：本项目的设置项，以后所有和项目相关的配置都是放在这个里面。 urls.py：这个文件是用来配置URL路由的。比如访问http://127.0.0.1/news/是访问新闻列表页，这些东西就需要在这个文件中完成。 wsgi.py：项目与WSGI工协议兼容的web服务器入口，部署的时候需要用到的，一般情况下也是不需要修改的。 project和app的关系app是django项目的组成部分。一个app代表项目中的一个模块，所有URL请求的响应都是由app来处理。比如豆瓣，里面有图书，电影，音乐，同城等许许多多的模块，如果站在django的角度来看，图书，电影这些模块就是app，图书，电影这些app共同组成豆瓣这个项目。因此这里要有一个概念，django项目由许多 app组成，一个app可以被用到其他项目，django也能拥有不同的app。通过命令：python manage.py startapp bookURL分发器一、视图：视图一般都写在 app 的 views.py 中。并且视图的第一个参数永远都是 request （一个HttpRequest）对象。这个对象存储了请求过来的所有信息，包括携带的参数以及一些头部信息等。在视图中，一般是完成逻辑相关的操作。def book_list(request): return HttpResponse("书籍列表！")视图可以是函数，也可以是类。二、URL映射：视图写完后，要与URL进行映射，即用户在浏览器中输入什么 url 的时候可以请求到这个视图函数。在用户输入了某个 url ，请求到我们的网站的时候， django 会从项目的 urls.py 文件中寻找对应的视图。在 urls.py 文件中有一个 urlpatterns 变量，以后 django 就会从这个变量中读取所有的匹配规则。匹配规则需要使用 django.urls.path 函数进行包裹，这个函数会根据传入的参数返回URLPattern 或者是 URLResolver 的对象。示例代码如下：from django.contrib import admin from django.urls import path from book import views urlpatterns = [ path('admin/', admin.site.urls), path('book/',views.book_list) ]URL中添加参数：有时候， url 中包含了一些参数需要动态调整。比如博客某篇文章的详情页的url，是https://moshanghua.net/details/3276 后面的 3276 就是这篇文章的 id ，那么文章详情页面的url就可以写成 ht…

用 Python 操作 Excel 文档（基础）
type: item
date: 2024-06-30T14:48:26+00:00
description: Excel表格的基本结构一个Excel表格文件，又叫做一个工作簿（Workbook）。一个工作簿中包含一个或多个工作表（Worksheet）。在工作薄页面的左下方可以进行工作表的切换和增删。一个工作表由单元格（Cell）组成。Excel的数据存储在单元格中。我们可以通过列号（Column）和行号（Row）对单元格进行定位。行号默认从数字1开始，并依次递增。列号默认从字母A开始，依次递增。超过字母Z后，以AA，AB的方式继续计数。至此，就是Excel表格的基本结构，总结如图所示。openpyxl 模块要使用Python对Excel表格进行读取，我们需要安装一个用于读取数据的工具 openpyxl 。openpyxl 是一个用于读、写Excel文件的开源模块。Excel表格读取读取工作簿读取指定路径的工作簿需要使用函数：openpyxl.load_workbook()openpyxl.load_workbook()函数读取成功后，会返回一个工作簿对象，本例中将这个对象赋值给了变量wb。# 导入openpyxl模块 import openpyxl #读取工作目录里名为"2019年1月销售订单.xlsx"的工作簿并赋值给变量wb wb = openpyxl.load_workbook("2019年1月销售订单.xlsx") 读取指定工作表如果事先不知道工作簿内有哪些工作表，可以通过访问工作簿的 .sheetnames 属性来获取一个包含所有工作表名称的列表。具体操作为在变量wb之后添加代码 .sheetnames 。import openpyxl wb = openpyxl.load_workbook("2019年1月销售订单.xlsx") # 使用print输出工作簿中所有的工作表名称 print(wb.sheetnames) # ['销售商品', '销售订单数据'] # 通过工作簿对象wb获取名为“销售商品”的工作表对象， orderSheet = wb["销售商品"] 读取指定单元格要获取工作表中指定的单元格对象，我们可以通过在中括号 [ ] 内填入列号和行号的方式去获取。单元格对象除了包含具体的值，还包含相关的函数和属性。要访问单元格里的值，可以在单元格对象后加一个 .valueimport openpyxl wb = openpyxl.load_workbook("sample.xlsx") print(wb.sheetnames) # ['sheet1', 'sheet2'] orderSheet = wb["销售商品"] # 使用print输出 orderSheet 的C5单元格对象 print (orderSheet["C5"]) # < Cell '销售商品'.C5 > # 使用 orderSheet["C5"].value 输出orderSheet的C5单元格的值 print(orderSheet["C5"].value) 若单元格中包含公式，现有方式读取出的值是公式本身。若需要读取公式计算后的值，要在读取工作簿的代码部分，传入一个参数： data_only=True ，便可以得出公式计算后的值了。# 导入openpyxl模块 import openpyxl # 原打开方式，直接读取公式本身 wb = openpyxl.load_workbook("2019年1月销售订单.xlsx") orderSheet = wb["销售订单数据"] # 输出公式本身 print(orderSheet["I3"].value) # 添加data_only=True打开工作簿，获取公式计算后的值 wb2 = openpyxl.load_workbook("2019年1月销售订单.xlsx", data_only=True) orderSheet2 = wb2["销售订单数据"] # 输出公式计算后的值 print(orderSheet2["I3"].value)工作表行数据的遍历要对整个工作表的每一行数据进行浏览查询，可以使用for循环对工作表对象的行属性（rows）进行遍历。具体代码为 for rowData in orderSheet.rows这样程序就会以从上到下的顺序，逐个获取到“销售订单数据”工作表内的每一行数据，读取出的每一行数据是由单元格对象组成的元组。import openpyxl wb = openpyxl.load_workbook("2019年1月销售订单.xlsx", data_only=True) orderSheet = wb["销售订单数据"] # 遍历工作表的所有行数据 for rowData in orderSheet.rows: # 输出行数据 print(rowData) # (<Cell '…

管理 Python 环境
type: item
date: 2024-06-22T14:07:00+00:00
description: pyenv 来管理 Python 版本pyenv 是一个强大 Python 包管理工具，可以灵活地切换各种 Python 版本，使用 pyenv 来管理我们的 Python 版本，优雅高效且不会破坏掉系统自带的 Python 环境：macOS 安装 pyenv➜ brew install pyenv接着为 pyenv 配置 shell 环境，提高工作效率，可自动联想 Tab 补全我们本地安装的 Python 版本：echo 'eval "$(pyenv init -)"' >> ~/.zshrcpyenv 安装 Python# 查看已经安装的Python版本 ➜ pyenv versions # 查看当前的 Python 版本 ➜ pyenv version # 查看可安装的版本 ➜ pyenv install -l # 安装与卸载 pypy3.8-7.3.11 ➜ pyenv install pypy3.8-7.3.11 ➜ pyenv uninstall pypy3.8-7.3.11版本切换确实很方便，所安装的版本都在 ~/.pyenv/versions 目录下：# global 全局设置 一般不建议改变全局设置 ➜ pyenv global <python版本> # shell 会话设置 只影响当前的shell会话 ➜ pyenv shell <python版本> # 取消 shell 会话的设置 ➜ pyenv shell --unset # local 本地设置 只影响所在文件夹 ➜ pyenv local <python版本>pyenv 的 global、local、shell 的优先级关系是：shell > local > globalPython 的 pip 管理工具pipenv 是一个强大的工具，用于简化 Python 项目中的依赖管理和虚拟环境管理。以下是一些常见的 pipenv 用法示例：更多关于 pipenv 的信息，可以查看它的官方文档： pipenv 官方文档 安装 pipenv首先，你需要确保已经安装了 pipenv。你可以通过以下命令安装它：pip install pipenv创建和管理虚拟环境创建一个新项目并初始化 **pipenv** 环境：mkdir my_project cd my_project pipenv install安装一个新的包pipenv 会自动创建一个虚拟环境（如果还没有创建），并将包安装到该虚拟环境中。pipenv install requests安装一个开发依赖包：开发依赖包只在开发环境中需要，比如测试工具。pipenv install --dev pytest卸载一个包：pipenv uninstall requests激活虚拟环境：激活虚拟环境后，你可以在其中运行 Python 命令和脚本。pipenv shell要退出虚拟环境，使用 exit 命令。运行脚本而不激活虚拟环境：如果你不想手动激活虚拟环境，可以使用以下命令直接在虚拟环境中运行脚本。pipenv run python your_script.py管理依赖文件生成 Pipfile.lock： Pipfile.lock 文件记录了所有包的精确版本，保证项目的一致性。pipenv lock安装 Pipfile 中的所有依赖： 如果你克隆了一个包含 Pipfile 的项目，可以使用以下命令安装所有依赖。pipenv install检查包的安全性： pipenv 提供了一个方便的命令来检查已安装的包是否有已知的安全漏洞。pipenv check其他有用的命令查看已安装包列表：pipenv graph更新包：pipenv update requests或更新所有包：pipenv update清理未使用的包：pipenv clean查看虚拟环境路径：pipenv --venv查看 Python 解释器路径：pipenv --py这些命令和用法应该可以帮助你更有效地管理 Python 项目的依赖和虚拟环境。如果你需要更多信息和详细的用法，可以查看 pipenv 的官方文档。例如：# 安装 pipenv pip install pipenv mkdir my_project cd my_project # 初始化 pipenv 环境 pipenv install # 安装模块 openpyxl pipenv install openpyxl # 激活虚拟环境，运行python，使用 exit 命令退出环境 pipenv shell # 直接在虚拟环境中运行脚本 pipenv run python your_script.py

【深谷Shintani】画了天依～
type: item
date: 2024-06-17T14:06:29+00:00
description: 分享图片 画师id感谢深谷老师的画作~ 并允许使用~ B站id：@深谷Shintani 微博id：@深谷-shintani