【Python Tips】创建自己的函数包并安装进Anaconda,像引入标准包一样直接import导入
目录
一、引言
二、方法步骤
步骤一:创建包目录结构
步骤二:配置__init__.py文件
步骤三:文件夹外配置setup.py文件
步骤四:终端Pip安装
三、结尾
一、引言
在编写项目代码的时候,有些自定义功能的函数是可以复用的。但是跨项目以后,不想将冗长的代码复制过来,使用import导入,跨本地文件夹又比较麻烦。因此如果能将自己写的函数创建成一个基础Python包,并将其pip安装进本地环境,那么我们以后使用起来就可以和其他基础库一样直接import了。
本文以在目标检测任务中将检测框可视化在图片上这一功能函数为例,演示上述内容。
visualize_box.py 实现的功能只是将框或线画到图片上,这在目标检测实验中常常要用到,可以将其写成函数黑盒形式(下第一幅图),在需要使用时(下第二幅图)导入即可。


二、方法步骤
如果有一个函数想要在多个地方使用,并希望像标准包一样直接import,可以将其创建成一个 Python 包。下面是创建和使用 Python 包的步骤:
步骤一:创建包目录结构
将写好的函数的 .py 格式文件放在创建的文件夹下,并新建一个 __init__.py 文件。
my_functions/
├── visualize_box.py
└── __init__.py

步骤二:配置__init__.py文件
在__init__.py文件中写入加载的函数,可以加载 visualize_box.py 中的某一个函数,也可以全部加载。__init__.py中的代码内容如下。
# my_functions/__init__.pyfrom .visualize_box import *
步骤三:文件夹外配置setup.py文件
在存放功能函数的根目录(包含my_functions的文件目录)创建一个setup.py文件用于pip安装包。其内部代码如下。
# setup.pyfrom setuptools import setup, find_packages
# 将name改为你设置的存放库函数的文件根目录名
setup(name='my_functions',version='0.1',packages=find_packages(),
)

步骤四:终端Pip安装
在终端中导航到 setup.py 所在的目录激活你要安装到的conda虚拟环境,并运行以下命令。
# cmd进入目录终端
# 激活conda虚拟环境
conda activate surya
# pip安装本地创建的库函数
pip install .
红框显示激活的虚拟环境,蓝框显示我们安装成功。
可以pip list一下检测安装的成功,也可以新建一个python文件导入函数使用。


三、结尾
耶!成功了安装自己编写的函数,【Python Tips】用来记录在使用python中的一些小技巧,比如包的安装编写,代码书写的规范,类的使用等等,行文不分顺序,用于备忘。
相关文章:
【Python Tips】创建自己的函数包并安装进Anaconda,像引入标准包一样直接import导入
目录 一、引言 二、方法步骤 步骤一:创建包目录结构 步骤二:配置__init__.py文件 步骤三:文件夹外配置setup.py文件 步骤四:终端Pip安装 三、结尾 一、引言 在编写项目代码的时候,有些自定义功能的函数是可以复用的。…...
【Python机器学习实战】 | 基于支持向量机(Support Vector Machine, SVM)进行分类和回归任务分析
🎩 欢迎来到技术探索的奇幻世界👨💻 📜 个人主页:一伦明悦-CSDN博客 ✍🏻 作者简介: C软件开发、Python机器学习爱好者 🗣️ 互动与支持:💬评论 &…...
备份和还原
stai和dnta snat:源地址转换 内网---外网 内网ip转换成可以访问外网的ip 内网的多个主机可以使用一个有效的公网ip地址访问外部网络 DNAT:目的地址转发 外部用户,可以通过一个公网地址访问服务内部的私网服务。 私网的ip和公网ip做一个…...
Java数组的初始化方法
Java数组的初始化方法 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!在Java编程中,数组是一种非常基础也非常重要的数据结构,它能够存储…...
通过分离有色和无色pdf页面减少打印费
前言 该工具是我认识的一位中科大的大佬在本科毕业的时候做的一个小工具,去打印店打印全彩的毕业论文的话会比较贵,他想到有没有一种方案可以实现有彩色页面的pdf和没有彩色页面的pdf分开打印,前者打印彩色,后者打印黑白…...
c语言--指针
前言 欢迎来到我的博客 个人主页:北岭敲键盘的荒漠猫-CSDN博客 本文整理c语言中指针的相关知识点。 指针概念 指针存储的就是数据的地址。 直观理解: 李华家是北洋路130号1单元101 用变量处理数据: 我们去李华家拿数据。 用指针处理数据: 我们去北洋路130号1单元101拿数据…...
python-九九乘法表(对齐式1)
[题目描述] 输出九九乘法表,输出格式见样例。输入格式: 无输出格式: 输出乘法表,对齐方式见样例输出。样例输入 无样例输出 来源/分类(难度系数:一星) 完整代码展示: #对齐式1 a[] …...
thinkphp单独为某个接口设置缓存
参考 官方文档 $this->request->cache(__URL__,600);只需要在接口方法的开头添加这个代码即可...
OpenCV视觉--视频人脸微笑检测(超详细,附带检测资源)
目录 概述 具体实现 1.加载分类器 2.打开摄像头并识别人脸 3.处理人脸并检测是否微笑 效果 总结 概述 OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉和机器学习库,广泛应用于图像处理和视频分析等领…...
docker 搭建 AI大数据模型 --- 使用GPU
docker 搭建 AI大数据模型 — 使用GPU方式 搭建本地大模型,最简单的方法!效果直逼GPT 服务器GPU系统HP580 G8P40Rocky9.2 安装程序AnythingLLM前端界面Open WebUIChatOllamaollama 一、AnythingLLM 介绍 AnythingLLM 是 Mintplex Labs Inc. 开发的一…...
面向对象, 常用类, 集合, 异常, JDBC, mysql数据库 复习
1.面向对象 (1)面向过程和面向对象 ● 面向过程的程序设计思想 (procedure -Oriented Programming),简称POP ● 关注的焦点是过程:过程就是操作数据的步骤。如果某个过程的实现代码重复出 现,那么就可…...
js取数组最大值之Math.max、Math.max.apply
js取数组最大值之Math.max、Math.max.apply Math.maxMath.max.applyapply()第一个参数为什么可以是null 最小值同理 Math.max Math.max(n1,n2,n3,…,nX) 支持传递多个参数,带有较大的值的那个数 Math.max(2,5,3,6,2,4,2,15,9,6,0,1)Math.max.apply apply() 语法&a…...
各种中间件的安装
文章目录 20232306mysql的wondows安装 2023 2306 mysql的wondows安装 常用mysql教程 springboot整合druid连接池SpringBoot配置Druid连接池 mysql的wondows安装 MySQL学习笔记 01、MySQL安装 这个是安装的具体思路 win10 安装 mysql 5.7 msi版的教程图文详解 这个是安装的…...
【Mysql】多表查询、隐式内链接、显式内连接、左外连接、右外连接
多表查询 什么是多表查询 •DQL: 查询多张表,获取到需要的数据 •比如 我们要查询家电分类下 都有哪些商品,那么我们就需要查询分类与商品这两张表 数据准备 创建db3_2 数据库 -- 创建 db3_2 数据库,指定编码 CREATE DATABASE db3_2 CHARACTER SET utf8;创建分类表与商品表 …...
Linux驱动开发(三)--新字符设备驱动开发 LED驱动开发升级
1、新字符设备驱动原理 使用 register_chrdev 函数注册字符设备的时候只需要给定一个主设备号即可,但是这样会 带来两个问题 需要我们事先确定好哪些主设备号没有使用 会将一个主设备号下的所有次设备号都使用掉,比如现在设置 LED 这个主设备号为200&…...
MCU的最佳存储方案CS创世 SD NAND
大家都知道MCU是一种"麻雀"虽小,却"五脏俱全"的主控。它的应用领域非常广泛,小到手机手表,大到航空航天的设备上都会用到MCU.市面上目前几个主流厂商有意法半导体(其中最经典的一款就是STM32系列)…...
40岁学习java是否需要报班学习?
在开始前刚好我有一些资料,是我根据网友给的问题精心整理了一份「java的资料从专业入门到高级教程」, 点个关注在评论区回复“666”之后私信回复“666”,全部无偿共享给大家!!!应该不需要。各种公开免费的…...
Vitis Accelerated Libraries 学习笔记--OpenCV 运行测试
目录 1. 简介 2. 实例测试 2.1 实例介绍 2.2 创建工程 2.2.1 创建工程 2.2.2 获取路径 2.2.3 设置路径 2.2.4 打开工程 2.2.5 添加文件 2.2.6 启动 GUI 2.2.7 配置 csim 参数 3 常见错误 3.1 核心共享库报错 4. 总结 1. 简介 在《Vitis Accelerated Libraries …...
加固三防平板如何提高轨道交通系统的运营效率?
在当今快节奏的社会中,轨道交通系统作为城市交通的重要组成部分,其运营效率的提升对于缓解交通拥堵、满足人们的出行需求以及促进城市的发展具有至关重要的意义。而加固三防平板作为一种先进的技术设备,正逐渐在轨道交通领域发挥着关键作用&a…...
Django 靓号管理系统:实现登录功能
本文将详细介绍如何在 Django 靓号管理系统中实现登录功能,包括用户认证、验证码生成、以及中间件的使用。我们将逐步展示所有相关代码,并附带详细注释。 1. 项目结构 首先,让我们看一下项目的基本结构: number ├── manage.py ├── monaco.ttf ├── number │ …...
告别环境冲突!在PyCharm里用Anaconda为ArcGIS 10.2创建专属Arcpy虚拟环境(附32/64位切换指南)
告别环境冲突!在PyCharm里用Anaconda为ArcGIS 10.2创建专属Arcpy虚拟环境(附32/64位切换指南) 当你在处理多个GIS项目时,是否经常遇到这样的困扰:一个项目需要ArcGIS 10.2的32位环境,另一个项目却需要64位…...
【NX二次开发】cam对象类型
//此函数的功能是打印当前坐标系试图的所有坐标系名称 static void geom_list_name(tag_t group_tag) { //ask_member_list int count=0; tag_t *list=NULL; //ask_name char name[UF_OBJ_NAME_LEN+1]; //ask_type_and_subtype int type=0; in…...
2026年项目管理工具选型指南:功能对比、适用场景与避坑建议
项目管理工具早已不只是任务看板,而是连接目标、需求、计划、资源、交付、知识与复盘的管理底座。本文选取 ONES、Tower、Jira、Asana、monday.com、ClickUp、Microsoft Planner、Smartsheet、Notion 九款主流项目管理工具展开评估,帮助企业中高层研发负…...
别再数据线了!用FastAPI 分钟搭个局域网文件+剪贴板神器
AI Agent 时代的沙箱需求 从 Copilot 到 Agent:执行能力的质变 在生成式 AI 的早期阶段,应用主要以“Copilot”形式存在,AI 仅作为辅助生成建议。然而,随着 AutoGPT、BabyAGI 以及 OpenAI Code Interpreter(现为 Advan…...
避坑指南:Unreal导航网格NavMesh生成与Agent属性设置的5个常见误区
Unreal引擎导航系统避坑指南:NavMesh生成与Agent配置的5个关键误区 在Unreal引擎中构建可靠的AI寻路系统时,许多开发者常陷入相似的陷阱。当AI角色频繁卡在门槛边缘、拒绝攀爬斜坡或选择匪夷所思的绕路路线时,问题往往不在于代码逻辑…...
手把手教你给51单片机项目“瘦身”:多传感器数据采集与显示的优化技巧
51单片机多传感器系统优化实战:从臃肿代码到高效工程的蜕变之路 当你的51单片机项目开始集成第三个、第四个传感器时,是否发现代码变得越来越难以维护?LCD显示刷新变得卡顿,传感器数据互相干扰,甚至整个系统会莫名其妙…...
颠覆传统:智能网页捕获工具重新定义长截图体验
颠覆传统:智能网页捕获工具重新定义长截图体验 【免费下载链接】full-page-screen-capture-chrome-extension One-click full page screen captures in Google Chrome 项目地址: https://gitcode.com/gh_mirrors/fu/full-page-screen-capture-chrome-extension …...
不止基础管理!国产 CRM 软件如何用数据分析赋能客户与销售工作
引言2026年国内企业数字化转型已进入深水区,CRM早已脱离了单纯的客户信息台账工具属性,数据分析能力成为衡量CRM产品价值的核心指标——从线索获客成本核算到跟单转化率优化,从客户复购价值挖掘到全链路风险管控,高质量的数据分析…...
无需模拟器!Windows运行安卓应用的革命性方案——APK-Installer轻量级安装工具全解析
无需模拟器!Windows运行安卓应用的革命性方案——APK-Installer轻量级安装工具全解析 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 在数字化办公与娱乐融…...
使用Tableau Public
一、实验准备 官网:探索 | Tableau Public 二、实验步骤 (一)数据获取与导入 打开 Tableau Public,点击左侧 **“获取数据”** → 选择 **“示例数据集”**。在示例数据集列表中选个顺眼的。数据加载后,在左侧 “数…...
