Abstract
在学习深度学习的基本算法时,我发现很多操作及其函数是可以重复使用,所以我在思考,身为一个程序员,我是不是可以把这些相对比较常用的操作打包成一个python包,在后续我可以直接import相应的函数即可较少很多操作,再者我再看论文的时候,复现一个算法实现,将算法写成一个函数返回值,这样再我下一次需要调用该算法,我不必重新去写该算法,而是调用函数直接训练,然后将其部署。
Technical background
1.需要清楚python包的结构层次
2.查阅PyPi查看具体操作步骤
注:PyPi的教程可能太过于繁杂规范,我个人不太建议,个人建议去查看相关blog教程
Problem description
自定义工具包的安装,以及其中可能调用相关函数找不到模块的可能问题解决
Implementation and experimentation
1. 创建包结构
首先,确保你的包有一个合适的结构。对于test包,它应该包含一个__init__.py文件以及你的tools.py模块。例如:
test/
__init__.py
tools.py
# 可能还有其他模块或子包
在__init__.py文件中,你可以导入tools模块,这样用户就可以通过test.tools来访问它。
test/init.py:
from . import tools
2.编写setup.py文件
接下来,你需要创建一个setup.py文件来描述你的包以及如何安装它。这个文件将用于构建和分发你的包。你可以使用setuptools库来简化这个过程。
首先,安装setuptools(如果你还没有安装的话):
pip install setuptools
然后,创建setup.py文件:
# setup.py
from setuptools import setup, find_packages
setup(
name='test',
version='0.1', # 你的版本号
packages=find_packages(), # 这会自动找到所有的包和子包
# 如果需要,你还可以添加其他选项,如description, author, install_requires等
)
3. 构建和分发包
使用setup.py文件,你可以构建你的包的分发包(通常是一个.whl或.tar.gz文件)。这可以通过运行以下命令来完成:
python setup.py sdist bdist_wheel
这将生成一个源代码分发包(source distribution)和一个二进制分发包(wheel)。这些文件通常位于dist/目录下。
4. 上传到PyPI(可选)
如果你想让你的包可以被其他人通过pip install直接安装,你需要将你的分发包上传到Python包索引(PyPI)。为此,你需要先注册一个PyPI账户,并使用twine工具上传你的包。
首先,安装twine:
pip install twine
然后,上传你的包:
twine upload dist/*
这会将你的分发包上传到PyPI,之后其他人就可以通过pip install test来安装你的包了。
5. 使用你的包
一旦你的包被安装,用户就可以通过以下方式导入并使用printtest函数:
import test.tools
test.tools.printtest() # 调用函数
或者,如果你在test/init.py中正确导入了tools模块,也可以直接使用:
import test
test.tools.printtest() # 调用函数
确保你的包名、模块名、函数名等都是正确无误的,并且遵循Python的命名规范。此外,在编写和分发包时,注意检查依赖项、兼容性以及文档的完整性,以提供良好的用户体验。
Conclusion
首先以上步骤是使用AI生成的,我已经懒得浪费时间去写重复的东西,而且我也不一定比AI写的更好,以上一定注意init文件的内容,如果为空的话,大概率你写的函数会找不到。