首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何组织Python项目?

如何组织Python项目?
EN

Stack Overflow用户
提问于 2011-03-01 21:28:58
回答 8查看 69K关注 0票数 81

我是Python的新手,我正在开始一个迷你项目,但我对如何以"Python方式“组织文件夹有一些疑问。

我在开发环境中使用PyDev,当我创建一个新项目时,会创建一个名为src的文件夹

代码语言:javascript
复制
+ src

现在,我可以在PyDev中创建Pydev ModulePyDev Package

我需要用以下方式组织我的项目:

代码语言:javascript
复制
+ Indicators
    - Moving_averages.py
    - Stochastics.py
+ Strategies
    - Moving_averages_cross.py
- example.py

我该如何根据模块和包来组织它呢?模块和包的含义是什么?

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2011-03-01 21:40:27

包基本上是一个文件夹,在它下面有__init__.py文件,通常还有一些模块,其中模块是一个*.py文件。它主要与import有关。如果您将__init__.py添加到指标,则可以使用:

代码语言:javascript
复制
from Indicators.Stochastics import *

代码语言:javascript
复制
from Indicators import Stochastics

顺便说一下,我建议模块/包名称保持小写。它不会影响功能,但更多的是"pythonic“。

票数 51
EN

Stack Overflow用户

发布于 2011-03-01 21:49:35

从文件系统的角度来看,模块是以.py结尾的文件,包是包含模块和(嵌套的)包的文件夹。如果文件夹包含__init__.py文件,Python会将其识别为包。

像这样的文件结构

代码语言:javascript
复制
some/
    __init__.py
    foofoo.py
    thing/
        __init__.py
        barbar.py

定义包some,它有一个模块foofoo和一个嵌套的包thing,后者又有一个模块barbar。但是,在使用包和模块时,您并没有真正区分这两种类型:

代码语言:javascript
复制
import some

some.dothis() # dothis is defined in 'some/__init__.py'

import some.foofoo # <- module
import some.thing # <- package

在选择命名您的包/模块时,请遵循PEP8 (即使用小写名称)。

票数 41
EN

Stack Overflow用户

发布于 2013-01-23 12:06:57

请参阅python-package-template

目录结构

代码语言:javascript
复制
    .
    |-- bin
    |   `-- my_program
    |-- docs
    |   `-- doc.txt
    |-- my_program
    |   |-- data
    |   |   `-- some_data.html
    |   |-- __init__.py
    |   |-- submodule
    |   |   `-- __init__.py
    |   |-- helpers.py
    |-- tests
    |   |-- __init__.py
    |   |-- test_helpers.py
    |-- Makefile
    |-- CHANGES.txt
    |-- LICENSE.txt
    |-- README.md
    |-- requirements-dev.txt
    |-- requirements.txt
    `-- setup.py

cat 生成文件

代码语言:javascript
复制
    PYTHON=`which python`
    NAME=`python setup.py --name`


    all: check test source deb

    init:
        pip install -r requirements.txt --use-mirrors

    dist: source deb

    source:
        $(PYTHON) setup.py sdist

    deb:
        $(PYTHON) setup.py --command-packages=stdeb.command bdist_deb

    rpm:
        $(PYTHON) setup.py bdist_rpm --post-install=rpm/postinstall --pre-uninstall=rpm/preuninstall

    test:
        unit2 discover -s tests -t .
        python -mpytest weasyprint

    check:
        find . -name \*.py | grep -v "^test_" | xargs pylint --errors-only --reports=n
        # pep8
        # pyntch
        # pyflakes
        # pychecker
        # pymetrics

    clean:
        $(PYTHON) setup.py clean
        rm -rf build/ MANIFEST dist build my_program.egg-info deb_dist
        find . -name '*.pyc' -delete
票数 27
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5155135

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档