V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
Grandmasters
V2EX  ›  Python

复杂的 Python 目录规范

  •  
  •   Grandmasters · 343 天前 · 2387 次点击
    这是一个创建于 343 天前的主题,其中的信息可能已经有所发展或是发生改变。
    想知道 Python 有没有具体的比较复杂的目录规范
    Google 上大致翻了一下,基本都是比较简单的那种。
    平时用的大概文件夹名大概有:
    一级:bin,data,src
    二级:api,db,lib,utils
    三级:具体的模块

    另外想问如果和前端(TypeScript)合作是否合适放在一个仓库内,怎么放比较合适。

    高中生勿喷,感谢。
    12 条回复    2021-06-21 08:29:04 +08:00
    ericls
        1
    ericls  
       343 天前 via iPhone   ❤️ 1
    放有什么优缺点? 不放有什么优缺点?
    你的目的事什么 哪一种做法能更好满足你的目的?

    我的前后端在一个 repo, 因为我的前后端不分人,部署也是一起部署的 也只用保证同一个 commit 的 前后端相互兼容。 如果分 repo overhead 将大大加大,而得不到别的好处。

    不要管什么范例, pattern 什么的 这些都是答案
    先看问题 再看答案

    问题都没看清楚 抄答案也会抄错的
    Pagliacii
        2
    Pagliacii  
       343 天前
    Python 没有具体地说项目结构该怎么组织。你可以参考这个库 https://github.com/cookiecutter/cookiecutter
    ,找找模版,看看其他人是怎么组织项目结构的。
    lookcos
        3
    lookcos  
       343 天前
    你看一下 requests 源码(典型的 pythonic ),没有多级目录,真正的源码就一级,何必搞那么多级?
    hushao
        4
    hushao  
       343 天前
    Python 你就随心所欲的想怎么写就怎么写,随着项目复杂度提高,逐渐的抽象、剥离,既然采用 Python 了,固化的结果就是开局就提高了复杂度,降低了编码效率,反而不值得。
    hushao
        5
    hushao  
       343 天前
    和前端可以放在一个大目录下,采用 submodule 方式
    GeruzoniAnsasu
        6
    GeruzoniAnsasu  
       342 天前
    啥 高中生

    哦那没有,django 怎么摆目录的照着往里填就得了



    “复杂目录结构” 是上万个工作日才能累积出来的,你现阶段大概完全接触不到

    p.s. 上万工作日的算法是 30 人核心小组 20 人外围 /组件开发从零到成熟化约一年左右的量
    Trim21
        7
    Trim21  
       342 天前
    如果是个 package 的话全都放在 package_name/ 里面,bin 用 entry_point
    freakxx
        8
    freakxx  
       342 天前
    可以借鉴 django 的做法,比较符合 python reusable 的一种设计思路;

    到最后你的结构可能会变成
    - config
    - apps
    - resource
    - utils

    这几个大结构,在这上面再延伸出去;
    freakxx
        9
    freakxx  
       342 天前
    > 另外想问如果和前端(TypeScript)合作是否合适放在一个仓库内,怎么放比较合适。


    放在一起可以的,分支可以这么考虑,适当调整;
    main - dev -test - frontend + backend - dev_<user>

    代码的话,各自放在项目层
    - frontend/
    - backend/
    - ReadME.md
    no1xsyzy
        10
    no1xsyzy  
       342 天前
    poetry new 就行了,管那么多干嘛(
    复杂了再切割就是了

    和前端合作,两个人的话不建议放一个 branch,但可以放同一个仓库,建两个 orphan branch 然后 master 里塞两个 submodule,顺便还把版本 pin 住了(这样的话 commit history 会放三份?有点傻逼)
    RockShake
        11
    RockShake  
       340 天前
    前后端一起放在一个大目录下,我曾经碰到过一个跟 IDE 相关的问题。Frontend 文件夹内直接用 CLI 等工具自动生成项目模板,在 VS Code 中 ESlint 报错,无法编译通过,找不到对应的包。后来发现必须在根目录下用 CLI 工具生成前端项目,或者必须用 VS Code 单独打开 Frontend 文件夹才能避免该问题。
    Rheinmetal
        12
    Rheinmetal  
       334 天前
    构建的有标准
    pep 517 还是 518 来着
    没搞过大项目是理解不了的
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2034 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 83ms · UTC 16:35 · PVG 00:35 · LAX 09:35 · JFK 12:35
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.