python项目目录结构

python 项目目录结构

(一) 目录组织方式

假设你的项目名为foo, 我比较建议的最方便快捷目录结构这样就足够了:

Foo/
|-- bin/
|   |-- foo
|
|-- foo/
|   |-- tests/
|   |   |-- __init__.py
|   |   |-- test_main.py
|   |
|   |-- __init__.py
|   |-- main.py
|
|-- docs/
|   |-- conf.py
|   |-- abc.rst
|
|-- setup.py
|-- requirements.txt
|-- README

(二) 说明如下

  • bin/: 存放项目的一些可执行文件,当然你可以起名script/之类的也行。
  • foo/: 存放项目的所有源代码。
    • 源代码中的所有模块、包都应该放在此目录。不要置于顶层目录。
    • 其子目录tests/存放单元测试代码;
    • 程序的入口最好命名为main.py。
  • docs/: 存放一些文档。如果你的项目偏机器学习类,数据集(dataset),模型文件(model) 也可以放这里面
  • setup.py: 安装、部署、打包的脚本。
  • requirements.txt: 存放软件依赖的外部Python包列表。
  • README: 项目说明文件。
  • 除此之外,有一些方案给出了更加多的内容。比如LICENSE.txt,ChangeLog.txt文件等,这些东西主要是项目开源的时候需要用到。

(三) 常见问题

1. 项目包路径找不到

  • 示例:ModuleNotFoundError: No module named ‘src’

  • 解决方案:在程序的入口文件中,将项目的绝对路径添加到环境中,代码如下:

    import sys, os
    
    # 将项目的根路径加入环境变量中
    PROJ_NAME = 'MgqDetction'
    
    # 项目根路径
    root_path = os.path.abspath(os.path.dirname(__file__)).split(PROJ_NAME)[0]
    proj_root_path = os.path.join(root_path, PROJ_NAME)
    sys.path.insert(0, proj_root_path)
    

参考资料

  • https://www.cnblogs.com/haifeima/p/9928115.html
  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值