PyCharm Workspace Mode + uv Workspace 实战指南

Python 新一代 Monorepo 工程组织方式


一、前言

最近打开 PyCharm,你可能会看到这样一个提示:

1
2
3
4
5
Enable and try workspace mode Beta

A large project can be split into smaller parts
(like backend, API, and shared code),
making it easier to organize and maintain.

很多人第一反应:

“这是啥?”

“和普通 Project 有什么区别?”

“是不是类似 pnpm workspace?”

“Python 终于开始搞 monorepo 了吗?”

实际上:

这个功能背后,代表的是 Python 工程组织方式的一次重大升级。

而它真正对应的生态,其实是:

1
uv + pyproject.toml + workspace

这篇文章会从:

  • 为什么需要 Workspace
  • 什么是 Monorepo
  • uv Workspace 怎么用
  • PyCharm Workspace Mode 如何配合
  • 实际部署怎么做
  • 如何避免架构混乱

完整讲清楚。

Read more

MarkItDown 真的好么?

MarkItDown 是微软开源的一款多功能文档转换工具,旨在将多种文件格式(如 PDF、Office 文档、图像、音频等)高效转换为 Markdown 格式,适用于文档索引、文本分析、内容管理等场景。以下是其核心特性与优势的详细解析:

Read more

一个使用的Python下的JSON库:ORJSON

在 Python 中,JSON 解析和序列化是非常常见的任务。虽然标准库提供了 json 模块,但当数据量大或者性能要求高时,它可能无法满足需求。这时候可以选择第三方库,比如 ORJSON

ORJSON 是一个超快速且功能丰富的 JSON 解析和序列化库,它利用 Rust 实现,性能显著优于 Python 标准库和其他 JSON 库(如 ujsonrapidjson)。

Read more

time中的time.perf_counter()和time.time()对比

简而言之 time 模块中的 time()函数用于获取当前时间,perf_counter()函数用于获取当前时间的精确计时器值,通常用于测量程序的执行时间。

Read more

解决Flask返回中文Unicode编码的问题

当Flask实现的接口,返回的数据中有中文存在的时候,会默认显示为Unicode编码。
这个就是ASCII码,用转换工具能够显示原来的。
之前可以使用如下方式解决

1
2
app = Flask(__name__)
app.config['JSON_AS_ASCII'] = False # 解决中文乱码问题

但是最新的不行了

Read more

Python下virtualenv & venv & pipenv 之间的联系与区别

需要 Python 虚拟环境管理工具的原因有很多,其中包括:

• 隔离项目依赖项: 每个项目可能需要不同的库和 Python 版本。通过使用虚拟环境,可以将每个项目的依赖项隔离在自己的环境中,避免冲突和版本问题。
• 提高开发效率: 虚拟环境可以让你快速地在不同的项目之间切换,而无需担心依赖项冲突或版本问题。
• 简化部署: 如果你将项目部署到不同的服务器上,那么你可以使用虚拟环境来确保每个服务器上都安装了正确的依赖项。
• 提高安全性: 虚拟环境可以帮助开发者隔离不安全的代码或库,防止它们影响其他项目或系统。

现在Python环境有三个用的比较多的,分别是
• virtualenv
• ven
• pipenv

Read more

Python更美观输出字典

在Python中以字符串形式打印一些数据结构时,输出结果会难以阅读。例如在解释器会话中输出时不仅键是乱序排列,而且字符串中也没有缩进:

1
2
3
mapping = {'a': 23, 'b': 42, 'c': 'ss'}
print(str(mapping))
# {'b': 42, 'c': ss, 'a': 23}

可以使用Python内置的json格式化输出

Read more

Python去除\ufeff、\xa0、\u3000等字符

在使用Python处理一些txt或者csv文件过程中,在输出的一些结果里面会有一些特殊的字符
例如:\ufeff\xa0\u3000

简单来说,这三个字符串分别是字节顺序标记,不间断空白符,全角的空白符。分别可以使用以下的方法去除。

Read more

使用Python获取csv的某行、列的数据

CSV是Comma-Separated Values的缩写,用文本文件形式储存的表格数据。

就可以存储为csv文件,文件内容是:

1
2
3
4
5
no.,name,age,score
1,apple,12,98
2,ben,13,97
3,celia,14,96
4,dave,15,95
Read more

在Debian上安装pip包管理器

有一些服务器的Debian系统虽然默认有Python3,但是没有pip包管理器。可以直接使用一下命令安装

  1. 更新软件包列表
    1
    sudo apt update
  2. 安装pip
    1
    sudo apt install python3-pip
Read more
Your browser is out-of-date!

Update your browser to view this website correctly.&npsb;Update my browser now

×