Python技术栈 —— 优秀项目结构

Python技术栈 —— 项目结构

一、项目结构

# 开发环境,这些目录一般不显示
|-- .git
|-- .idea
|-- .venv

# 项目目录
|-- assets 			# 附录
|-- bin 			# 二进制文件
|-- data 			# 数据
|-- docker 			# docker文件
|-- docs 			# 文档
|-- examples 		# 样例
|-- {project_name} 	# 项目源码包,注意包命名规范,不能使用 - ,会被认为是减号
|-- include 		# 引用
|-- libs 		    # 外部资源库
|-- logs 			# 日志
|-- models   		# 模型文件
|-- resources 		# 配置文件
|-- scripts 		# 脚本
|-- static 			# 静态资源
|-- templates 		# 页面
|-- tests  			# 测试代码
|-- tmp  			# 临时文件

# 其它文件
|-- requirements.txt
|-- environments.yml
|-- setup.py
|-- .gitignore
|-- ReadMe.md

在这里插入图片描述

mkdir assets docker huihu logs scripts tests
mkdir bin docs include models static tmp
mkdir data examples libs resources templates
参考文章
Understanding the Structure of a Python Program

二、包的导入导出

__init__.py 更像是一个 API 门面,你可以通过它对外界暴露最重要的模块,而隐藏包内部的复杂性, 它极大地影响了导入方式的简洁性和对外的模块封装,所以,无论是否在 __init__.py 中显式导入,绝对路径的引用总是可以使用的, 它提供了一种向上浮动的导出机制,允许用户通过更简洁的路径导入包中的模块, 使得可以在包的更高层导入模块,而无需指定完整路径。

那么没必要导出的包,就不要写在__init__.py中,因为写了的话就会去一层一层执行具体的.py文件代码,这样可能会导致问题,如果涉及到最底层的.py代码,最好要用完整路径去引用。

在 Python 中,包名不能包含连字符(-),因为连字符在 Python 语法中被认为是减号运算符。如果包名中包含连字符,Python 会将其解释为运算符,导致导入失败或语法错误。

在 setup.py 或 requirements.txt 文件中,你仍然可以使用带连字符的名称来发布或安装包,因为包管理工具(如 pip)允许带有连字符的包名,但在代码中导入时,必须使用下划线。

setup(
    name='your-lib',  # 分发名称
    packages=['your_lib'],  # Python 中的包名称(用于导入)
    ...
)
参考文章
Python import: Advanced Techniques and Tips
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值