
Python
文章平均质量分 89
Python
Dontla
这个作者很懒,什么都没留下…
展开
-
Python Flask并发demo(http并发与锁)独占接口、monkey功能还不太确定
flask接口默认不支持并发,加了spawn后由于某种原因还是不能并发,还需再加个monkey;如果有接口不适用于同时操作,可通过加锁来控制。这个设计允许 Flask 应用在处理并发请求时保持高性能,同时为需要独占执行的操作提供了安全保障。原创 2025-03-31 14:36:54 · 568 阅读 · 0 评论 -
uv命令介绍(高性能Python包管理工具,旨在替代pip、pip-tools和virtualenv等传统工具)
团队(Ruff 和 Black 的开发者)推出的高性能 Python 包管理工具,旨在替代。快 10-100 倍)、支持全局依赖缓存,并兼容。原创 2025-03-14 16:17:42 · 1524 阅读 · 0 评论 -
python panel网页报错:Application did not publish any contents(在panel serve命令下,脚本需要在模块级别定义可服务的对象)
确保所有函数在模块级别可访问,并且不依赖于。原创 2025-01-08 07:30:00 · 667 阅读 · 0 评论 -
shell exec命令在docker容器shell执行python脚本中的应用(进程替换后能使python进程直接接收到信号,同时减少了额外的进程)shell $@的作用:
使用exec替换当前的 Shell 进程,使你的应用程序成为容器中的主进程,确保信号正确传递并优化资源管理。这在 Docker 容器中是最佳实践,有助于构建更稳定和高效的应用程序容器。$@$@是一个强大的工具,用于在 Shell 脚本中处理和传递多个参数。"$@"在双引号内使用时,可以确保每个参数都被正确地传递和解析,避免因空格或特殊字符导致的问题。在 Docker 容器的入口脚本中使用"$@"可以提高脚本的灵活性和可复用性,使容器能够根据需要接受不同的参数。原创 2025-01-04 07:45:00 · 1154 阅读 · 0 评论 -
《LLM入门教程》大模型教程笔记7:一、面向开发者的提示工程——3. 迭代优化(初始提示、解决生成文本太长、处理抓错文本细节、添加表格描述)
在开发大语言模型应用时,很难通过第一次尝试就得到完美适用的 Prompt。但关键是要有一个良好的迭代优化过程,以不断改进 Prompt。相比训练机器学习模型,Prompt 的一次成功率可能更高,但仍需要通过多次迭代找到最适合应用的形式。本章以产品说明书生成营销文案为例,展示 Prompt 迭代优化的思路。这与吴恩达在机器学习课程中演示的机器学习模型开发流程相似:有了想法后,编写代码、获取数据、训练模型、查看结果。通过分析错误找出适用领域,调整方案后再次训练。原创 2024-12-30 07:15:00 · 1043 阅读 · 0 评论 -
vscode Snippets代码片段、预定义代码模板(自动添加作者、时间信息)(Preferences: Configure User Snippets)python文件头、File Header
是一组预定义的代码模板,可以通过输入特定的前缀并按下触发键(通常是。原创 2024-12-28 08:15:00 · 2176 阅读 · 0 评论 -
python代码在生产环境部署有必要打包.so文件吗?(python打包so、python so)共享对象文件
将Python代码编译成.so。原创 2024-12-23 09:39:54 · 1078 阅读 · 0 评论 -
Anaconda命令(Anaconda指令)
Anaconda通过强大的conda命令行工具,提供了灵活的环境和包管理功能。掌握这些命令不仅能够提升开发效率,还能确保项目依赖的一致性和可移植性。通过本文的介绍,期望读者能够熟练运用Anaconda命令,优化数据科学和开发流程。无论是创建和管理环境、处理包依赖,还是导出与导入环境配置,Conda都为开发者提供了便捷高效的解决方案。原创 2024-12-21 06:45:00 · 1650 阅读 · 0 评论 -
vscode怎么设置anaconda python解释器(anaconda解释器、vscode解释器)
【代码】vscode怎么设置anaconda python解释器。原创 2024-12-19 11:18:47 · 1885 阅读 · 0 评论 -
python虚拟环境怎么下载离线包文件(python venv、python离线包、python wheel、pip包安装文件、python下载)pip download -r xx --dest
激活虚拟环境并导出依赖包列表。使用下载所有包的离线文件。在没有互联网连接的机器上,使用离线安装这些包。这样,就可以将虚拟环境中的所有包下载到本地,并在没有网络的环境中进行安装。原创 2024-12-03 22:20:56 · 1312 阅读 · 6 评论 -
为什么操作系统有两个python pip?/usr/bin/pip、/usr/local/bin/pip
可执行文件,它们可能是不同的安装路径,并且通常意味着这两者之间存在不同的安装方式或来源。)安装的版本,通常是由系统默认提供的稳定版本。版本,最好确保你明确使用的是哪个版本来管理 Python 包,以避免混乱。或其他 Python 包,它可能会覆盖系统级的安装,并将新的。等),不同的 Python 环境可能会安装不同版本的。通常会较旧,因为它是由操作系统维护的,不会自动升级。版本,这样就会导致系统中同时存在两个版本的。从你提供的输出来看,你系统中确实有两个。创建虚拟环境的时候,默认是用的。原创 2024-12-01 08:00:00 · 633 阅读 · 0 评论 -
Anaconda太霸道了!(conda deactivate退出虚拟环境)miniconda
为了不修改默认 Python 版本,你可以在安装 Miniconda 后通过创建一个指定 Python 版本的 Conda 环境。在该环境中使用所需的 Python 版本,而不会影响系统的 Python 设置。如果已经安装了 Miniconda,可以手动创建新的 Conda 环境并指定 Python 版本。这样,你可以确保宿主机的 Python 版本保持为 3.8,而在 Conda 环境中使用所需的其他版本。Miniconda 安装过程中默认会修改PATH。原创 2024-11-30 09:30:00 · 2019 阅读 · 0 评论 -
python venv虚拟环境activate命令解析(激活虚拟环境原理)(PATH、VIRTUAL_ENV、Shell提示符PS1、sys.prefix和sys.base_prefix变量)
当使用venv创建虚拟环境时,会在虚拟环境目录下生成一个名为activate的脚本。这个脚本的主要功能是将当前的Shell环境切换到虚拟环境中,以便在其中运行Python代码和管理依赖库。activate并不会创建新的Python解释器,而是修改了当前Shell环境中的环境变量,使得命令行终端中的python和pip指向虚拟环境中的版本,从而实现对虚拟环境的“激活”。activateactivate脚本的核心作用是通过修改一系列环境变量,使得用户可以在虚拟环境中工作而不会影响全局环境。通过修改PATH。原创 2024-11-30 08:00:00 · 2407 阅读 · 1 评论 -
算法时间复杂度和空间复杂度计算方法(O(1)、O(n)、O(logn)、O(n^2)、O(n^3 )、O(n!))分治法归并排序、主定理
时间复杂度是指随着输入规模的增加,算法所消耗的时间增长情况。时间复杂度的计算通常以输入规模nnn为变量,衡量的是最坏情况、最好情况或平均情况下的时间增长趋势。合并是通过两指针(i和j)在两个有序子数组中一次性扫描每个元素。每个元素会被比较一次并放入结果数组中,之后不再参与任何操作。合并过程中的每个元素仅被访问一次,因此时间复杂度为OnO(n)On,其中nnn是待合并的元素总数。这种设计保证了归并排序在合并阶段的时间复杂度为线性OnO(n)On,并且整体的时间复杂度是On。原创 2024-11-28 16:54:53 · 1305 阅读 · 0 评论 -
error: Unable to load dependency HDF5...Failed to build h5py. error: libhdf5.so...操作系统缺少libhdf5-dev库
上述步骤应能帮助您解决在安装h5py时遇到的HDF5依赖问题。确保HDF5库和开发文件已正确安装,并且库路径已正确配置,然后重新尝试安装h5py。如果问题依旧,请提供更多的错误日志以便进一步诊断。原创 2024-11-22 11:42:41 · 1075 阅读 · 0 评论 -
Python包动态安装机制(判断包是否存在,动态安装.wheel,动态安装依赖,离线安装.whell)
通过上述方法,你可以实现一个自动化的依赖检测和安装机制,无需事先明确列出所有需要的包。脚本会动态解析自身的导入语句,确保所有依赖包都已安装,并通过提供的.wheel文件进行安装。这种方法适用于包依赖较为明确且.wheel文件已准备齐全的场景。如果你的项目依赖复杂,建议考虑使用标准的依赖管理工具(如pipenv或poetry)来管理和安装依赖,这样可以更好地控制依赖版本和解决依赖冲突。原创 2024-11-07 11:46:49 · 1237 阅读 · 0 评论 -
Python前向引用与延迟解析(前向引用:一种在类或函数内部引用尚未定义的类型或变量的行为;通过字符串的形式进行延迟类型解析)(双引号或单引号包裹、延迟加载)(互引用、互相引用)
在 Python 编程中,前向引用是一种在类或函数内部引用尚未定义的类型或变量的行为。这种情况通常发生在使用类或函数之间相互引用或依赖的场合。由于 Python 的解释性质,代码是按照从上到下的顺序执行的,这就可能导致在某些情况下引用到尚未声明的类型或函数,从而抛出错误。为了解决这种问题,Python 3.7 引入了更宽松的前向引用处理方式,即通过字符串的形式进行延迟类型解析。原创 2024-11-06 14:54:53 · 839 阅读 · 0 评论 -
Python单例模式(三种实现方式:覆写__new__方法、使用装饰器、使用元类)(单例模式之线程安全)(单例的懒汉模式与饿汉模式)
单例模式是一种常用的软件设计模式,目的是确保一个类只有一个实例,并提供一个访问该实例的全局访问点。在多线程环境中,单例模式能够避免对共享资源的多重占用,是构建资源管理器、工厂类等对象时的首选模式。单例模式是一个非常有用的模式,在很多需要控制资源访问或者状态共享的场景下非常有用。Python提供了多种方式来灵活实现单例模式,可以根据具体需要选择合适的实现方式。在多线程环境中实现单例模式时,确保线程安全是非常重要的。原创 2024-10-12 18:42:20 · 2396 阅读 · 0 评论 -
Python __new__方法(__new__函数,对象实例化时调用)(如果 __new__ 方法不返回实例,则 __init__ 方法不会被调用)Python cls关键字、类的super()方法
在Python的类定义中,__new__是一个特殊的方法,用于在一个对象实例化的时候被调用,它位于__init__方法之前。__new__是在一个类准备创建新对象时调用的第一个方法。它是静态方法,而且是一个构造器,负责返回一个新的实例。如果__new__方法不返回实例,则__init__方法不会被调用。这个特性使得__new__方法在各种高级用法中变得非常有用,如实现单例模式、缓存以及其他技术。__new__原创 2024-10-12 13:48:08 · 1124 阅读 · 0 评论 -
apt update报错:ModuleNotFoundError: No module named ‘apt_pkg‘(可能是默认python版本被改坏了)
如果您在使用 Conda 或其他虚拟环境,可能会影响系统脚本运行。尝试禁用虚拟环境或更改环境配置,以确保系统脚本可以找到正确的库。如果问题依然存在,可能需要检查更详细的系统日志或进一步探索其他潜在的配置问题。查看默认python版本,貌似被他们改掉了,可能用于训练,算了,我就不改他们的了。这通常是因为 Python 环境配置问题或者必要的库文件没有正确安装。选择正确的 Python 版本,通常是系统默认的 Python 3.x 版本。链接到的是系统的 Python 版本。您遇到的错误信息表明,当尝试运行。原创 2024-10-09 17:15:45 · 1746 阅读 · 0 评论 -
Python __init__.py文件(初始化模块导入、动态导入、包的初始化代码、自定义包路径、构建命名空间包)(动态导入与静态导入区别)
利用的__path__属性,可以动态修改包的搜索路径,这对于在运行时添加源文件目录到包中特别有用。import os# 假设有额外的模块目录通过在中修改__path__,你可以灵活地管理和扩展包的结构,实现模块的组织和加载更加符合项目的需要,特别是在大型项目中或者需要动态加载资源的情况下非常有用。这种方法提供了极大的灵活性,使得包可以跨越多个目录而不受传统文件结构的限制。原创 2024-10-08 14:12:44 · 3978 阅读 · 0 评论 -
Python struct.pack()函数(将Python数据转换为字节串,便于二进制数据的文件存储和网络传输)(格式字符串)(网络字节序、大端序、小端序、序列化)>B B H H
是 Python 标准库中struct模块的一个函数,主要用于将 Python 数据转换为字节串,这些字节串符合特定的格式,便于二进制数据的存储和网络传输。此功能在处理网络通信和二进制文件时尤为重要。原创 2024-10-08 10:49:07 · 3030 阅读 · 0 评论 -
Python异常链(异常串联)raise xxx from e(处理异常时又遇到异常)主异常、次要异常(异常链提供了异常发生完整背景,允许开发者追踪问题根源)traceback.print_exc()
异常链,或称为异常串联,是在处理一个异常时又遇到另一个异常的情况。在Python中,这种机制通常涉及两种异常:主异常和次要异常。主异常是最初被触发的异常,而次要异常是在处理主异常的过程中触发的。try:logging.error("文件未找到:{}".format(filename))raise FileNotFoundError("无法打开文件") from edata = read_data_from_file("不存在的文件.txt")原创 2024-09-26 11:55:16 · 1333 阅读 · 0 评论 -
Python提示:Consider explicitly re-raising using ‘raise xxx from e‘ Pylint(W0707:raise-missing-from)异常链
语句,以便保留异常的上下文。如果你遵循这个建议,那么在处理异常时会更容易追踪到问题的根源。这样做的好处是可以保留原始异常的上下文,从而在调试时能够看到完整的异常链。这个提示来自 Pylint,一个 Python 代码分析工具。提示内容是关于在抛出一个新的异常时,应当显式地使用。在 Python 3 中,如果你在处理一个异常时又引发了另一个异常,可以使用。语法,这是 Python 3 引入的一种异常链特性。如果你的代码在一个异常处理块中捕获到一个异常(例如。),然后决定抛出一个自定义的异常(比如。原创 2024-09-25 17:18:55 · 1077 阅读 · 0 评论 -
python内存管理与C++内存管理的区别与最佳实践(自动内存管理)(__enter__、__exit__)
虽然Python没有像unique_ptr那样的智能指针来管理内存,但其内置的垃圾回收机制和上下文管理器功能提供了一种高级且安全的方式来管理资源和内存。这反映了Python设计的高级抽象和易用性,以及它在资源管理上的自动化策略。如果你需要在Python中实现类似unique_ptr的功能,通常是通过结构化编程和合理使用上下文管理器来完成的。原创 2024-09-25 14:30:54 · 1509 阅读 · 0 评论 -
python threading模块(Thread类、Lock类、Semaphore类、Event类、Condition类、Barrier类、Timer类)使用场景详解(同步原语概念)读写锁、自旋锁
Thread类是threading模块中最基本的类,用于创建和运行线程。该类提供了启动、管理和控制线程执行的基本方法。Lock类是一个基本的同步原语,用于控制对共享资源的访问,防止多个线程同时修改同一数据。Semaphore是一个计数器,用于控制同时访问共享资源的线程数量,超过限制的线程将被阻塞。Event类是一个同步原语,用于线程间的事件通知。线程可以等待一个事件的触发,或设置事件的状态为触发,从而通知其他线程。Condition类提供了比Lock。原创 2024-09-20 18:14:32 · 1358 阅读 · 0 评论 -
python线程(python threading模块、python多线程)(守护线程与非守护线程)
Python多线程是一种允许程序同时执行多个任务的技术。它主要通过threading模块实现,该模块提供了丰富的API来创建和管理线程。使用多线程可以提高程序的执行效率,尤其是在执行多个独立的任务时,或者在进行大量的I/O操作时。原创 2024-09-20 17:57:14 · 1158 阅读 · 0 评论 -
python sqlite3数据库介绍(如何使用参数化查询防止SQL注入攻击)(直接通过网络让其他主机访问某台主机上的SQLite数据库是不被直接支持的,可以通过文件访问,但可能面临数据库锁等问题)
在 SQL 注入攻击中,攻击者通过将恶意 SQL 代码嵌入到应用程序预期接收为数据的输入中,企图控制应用程序的数据库查询或命令。在参数化查询中,SQL 命令在发送给数据库之前,已经定义了结构,并且只接受指定的参数。这种方式保护了程序免受 SQL 注入攻击,因为即使用户的输入中包含了 SQL 代码片段,它们也会被数据库视为普通数据而不是可执行的 SQL 代码。SQLite 是一个轻量级的数据库,内嵌于应用程序中,不需要单独的服务器进程,使用方便,非常适合小型应用、开发和测试环境。从表中查询数据,并打印结果。原创 2024-09-19 16:07:55 · 1524 阅读 · 0 评论 -
Building wheels for collected packages: grpcio太慢(pip install太慢)pip install --upgrade pip(升级pip升级)
【代码】Building wheels for collected packages: grpcio太慢问题(Building wheel for xxx太慢)pip install太慢。原创 2024-09-14 14:02:52 · 876 阅读 · 0 评论 -
python 文件操作 os.walk() 方法(python遍历文件、遍历目录)(topdown、followlinks)
Python 的os.walk()函数是一个非常实用的工具,用于生成文件系统路径中的文件名和目录名。这个函数位于os模块中,能够递归遍历指定目录,并为每个目录产生一个三元组。原创 2019-10-23 13:28:09 · 857 阅读 · 0 评论 -
python import相对导入与绝对导入(python导包)ImportError(python -m测试if __name__ == ‘__main__‘)python3 -m
总结来说,绝对导入和相对导入各有利弊,选择哪种方式取决于你的项目结构和个人或团队的编码习惯。在大型项目中,清晰地管理这些导入是非常重要的,以维持代码的可维护性和可读性。例如,如果你有一个复杂的项目结构,使用相对导入可以避免在重构文件结构时导入路径出错的问题。绝对导入更常见,特别是在需要引用项目根目录或不同包中模块时。使用相对导入的好处是,如果你决定更改包的名称或结构,你不需要更新导入语句,只要保证相对位置不变即可。两种导入方式看似相似,但在模块寻找机制上存在重要差异,这涉及到相对导入和绝对导入的概念。原创 2024-08-21 17:22:00 · 1145 阅读 · 0 评论 -
Arm python虚拟环境安装tensorflow报错:ERROR: Failed building wheel for h5py(操作系统缺少HDF5库:libhdf5.so)
这个错误发生是因为在尝试安装 TensorFlow 时,依赖包 h5py 需要编译,而在编译过程中需要 HDF5 库的支持。从错误日志来看,安装过程中无法找到 HDF5 库(libhdf5.so),因此编译 h5py 失败。如果在安装 HDF5 库后仍然遇到问题,可能需要检查系统架构(如 x86_64, arm64 等)和 Python 版本是否与你安装的包兼容。要解决这个问题,你需要确保 HDF5 库已经正确安装在你的系统中。原创 2024-08-16 16:01:26 · 570 阅读 · 0 评论 -
python虚拟环境挂载到docker容器中后,激活不生效问题(虚拟环境失效、虚拟环境不生效)(python venv)(挂载到容器中后,虚拟环境的位置路径改变了)(已解决)
原因是挂载到容器中后,虚拟环境的位置路径改变了。挂载的时候不能改变虚拟环境位置路径,要完全一致才行。原创 2024-08-16 11:26:10 · 964 阅读 · 0 评论 -
Python logging库(python日志库)Logger(记录器、收集器、采集器)、Handler(处理器)、Formatter(格式化器)、Log Level(日志级别)
Python的logging库是标准库的一部分,旨在为应用程序提供灵活的日志记录功能。它可以轻松地记录不同级别的日志信息,并可以将日志信息输出到不同的目标,比如控制台、文件、远程服务器等。logging库非常适合在开发和生产环境中使用,因为它不仅可以帮助开发人员追踪和调试代码,还可以帮助系统管理员监控应用程序的运行状态。在使用logging库时,首先需要创建一个记录器,然后可以通过这个记录器记录日志消息。# 创建一个记录器# 创建一个处理器# 创建一个格式化器并将其添加到处理器中。原创 2024-07-08 16:02:49 · 4979 阅读 · 0 评论 -
Python defaultdict(可以在访问字典中不存在的键时自动创建默认值)(默认字典、默认值字典)(应用:构建多级字典、模拟类对象动态设置和获取属性、实现图论图结构)(可变字典)
是 Python 标准库模块中的一个类,它扩展了普通字典(dict)的功能。通过使用,可以在尝试访问字典中不存在的键时自动创建默认值,这极大地简化了某些编程模式。# 使用自定义默认值# 输出: {'count': 1, 'total': 59.99}了解这些基本语法和概念之后,你就可以更好地理解的高级应用,并将其有效地应用在各种编程场景中。除了简单的类型如listint和set,可以定义更复杂的工厂函数来满足特定的需求。这些工厂函数可以是任何无参数的函数,它返回的值将用作字典的默认值。原创 2024-07-05 16:55:05 · 4469 阅读 · 1 评论 -
python类私有属性(python私有属性)私有属性是双下划线__开头(名称改写name mangling),单下划线_开头只是约定,标明属性是保护的(保护属性)
的属性:这是一种约定,用来指示该属性或方法主要用于内部使用,不是公开的API的一部分,不应从类外部直接访问。因此,可以说它们是“非公开的”或“受保护的”属性,而非严格意义上的“私有”。Python 中的名称改写或 “name mangling” 主要用途是在类定义中隐藏内部细节,防止属性在子类中被无意覆盖,以及减少从类外部直接访问私有属性的可能性。)开头的属性是一种约定,用来指示属性是保护的,即这个属性应该只在类及其子类中使用,不应该在类的外部直接访问,但是这只是一个约定,并不是Python强制的规则。原创 2024-07-04 17:46:45 · 706 阅读 · 0 评论 -
【Effective Python教程】(90个有效方法)笔记——第3章:函数——26:用 functools.wraps 定义函数修饰器(lru_cache装饰器——数据缓存、字典缓存、计算缓存)
Python中有一种特殊的写法,可以用修饰器(decorator)来封装某个函数,从而让程序在执行这个函数之前与执行完这个函数之后,分别运行某些代码。这意味着,调用者传给函数的参数值、函数返回给调用者的值,以及函数抛出的异常,都可以由修饰器访问并修改。这是个很有用的机制,能够确保用户以正确的方式使用函数,也能够用来调试程序或实现函数注册功能,此外还有许多用途。原创 2024-07-03 13:35:26 · 1326 阅读 · 0 评论 -
【Effective Python教程】(90个有效方法)笔记——第3章:函数——25:用强制关键字参数*—Keyword-only和强制位置参数/—Positional-only来设计清晰的参数列表
Effective Python——编写高质量Python代码的90个有效方法。原创 2024-06-28 10:39:43 · 1118 阅读 · 0 评论 -
Python数学符号(浮点特殊值:-float(‘inf‘)、float(‘nan‘);复数;常数:math.pi;精确分数:fractions.Fraction;十进制数:Decimal模块)
这篇文章将详细探讨Python中几种常用的特殊数学表达和符号,包括浮点特殊值、复数、常数、精确分数和十进制数,以及它们的应用场景和示例代码。这对于金融计算尤其重要,其中精确的小数运算是必需的,因为浮点数可能因其二进制表示而导致精度损失。Python中的浮点数遵循IEEE 754标准,该标准定义了几种特殊的数值,用于表示超出常规浮点数范围的计算结果。模块,Python可以进行基于分数的精确数学计算,避免了浮点数的误差。(我的是0.1),而是有更多的小数位数,显示其内部表示的不精确性。原创 2024-06-27 15:13:27 · 1141 阅读 · 0 评论 -
【Effective Python教程】(90个有效方法)笔记——第3章:函数——24:用None和docstring来描述默认值会变的参数(函数默认参数值只在定义函数时计算)函数默认参数为None
有时,我们想把那种不能够提前固定的值,当作关键字参数的默认值。例如,记录日志消息时,默认的时间应该是触发事件的那一刻。所以,如果调用者没有明确指定时间那么就默认把调用函数的那一刻当成这条日志的记录时间。现在试试下面这种写法,假定它能让 when 参数的默认值随着这个函数每次的执行时间而发生变化。这样写不行。因为 datetime.now只执行了一次,所以每条日志的时间戳(timestamp)相同。原创 2024-06-27 13:51:00 · 1292 阅读 · 0 评论