我在哪里放我的包裹内容?

时间:2018-05-26 14:12:07

标签: python

我创建了一个Python包......没有任何内容。它只是来自Python packaging tutorial的简单结构。

<android.support.design.widget.CoordinatorLayout 
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:card_view="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">

<android.support.design.widget.AppBarLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <android.support.design.widget.CollapsingToolbarLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <android.support.v7.widget.Toolbar 
           xmlns:android="http://schemas.android.com/apk/res/android"
           xmlns:ripple="http://schemas.android.com/apk/res-auto"
           android:id="@+id/tv_toolbar"
           android:layout_width="match_parent"
           android:layout_height="50dp"
           android:background="#fff"
           ripple:contentInsetStart="0dp">
        </android.support.v7.widget.Toolbar>

    </android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>

<ScrollView
    android:id="@+id/coordinate_container"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:marginTop="56dp">
</ScrollView>

您在哪里放置要创建的文件?在根文件夹或其他地方?

4 个答案:

答案 0 :(得分:2)

您的文件应位于example_pkg下,示例中包含__init__。 表示包或子包的每个文件夹都应该有一个__init__.py文件。

答案 1 :(得分:1)

在Python生态系统中,(至少)有两个相关但不同的东西称为“包”:

  • prefixes in "dotted module names",通常由包含__init__.py文件
  • 的目录表示
  • 命名的代码分发单位(例如通过PyPI),可以使用pip和相关工具进行安装

按照您链接的说明,您可能已经为后者(包含setup.py的目录等)创建了一个结构,其中包含一个第一类包(内部example_pkg目录)。 )

example_pkg/
├── example_pkg/
│   └── __init__.py
├── LICENSE
├── README.md
└── setup.py

通常,您应该将库的代码放入第一种类型的包(内部example_pkg文件夹)中,以便该命名空间正确包含它。

example_pkg/
├── example_pkg/
│   ├── __init__.py <--- put your code here
|   ├── a_sub_pkg/
│   │   ├── __init__.py  <-- or maybe here
│   │   └── something.py <-- or here
│   └── another_thing.py <-- or here
├── LICENSE
├── README.md
└── setup.py

答案 2 :(得分:0)

我认为您可以从简单地将所有源代码文件放在根目录中开始。将不同的文件(例如图像)放在专用文件夹中可能是个好主意。

当你的项目变大时,最好创建更多的子文件夹(&#34;包&#34;),但这个真的取决于你的情况。从The Zen of Python可以看出,你应该保持你的包结构简单。

>>> import this

  

Python的禅宗,蒂姆·彼得斯

     

美丽胜过丑陋。
  明确比隐含更好   简单比复杂更好。
  复杂比复杂更好    Flat比嵌套好。
  稀疏比密集更好   可读性很重要。
  特殊情况不足以打破规则   虽然实用性超过了纯度   错误绝不应该默默无闻   除非明确沉默。
  面对模棱两可,拒绝猜测的诱惑   应该有一个 - 最好只有一个 - 明显的方式来做到这一点   虽然这种方式起初可能并不明显,除非你是荷兰人   现在总比没有好。
  虽然现在永远不会比正确更好   如果实施难以解释,那么这是一个坏主意   如果实施很容易解释,那可能是个好主意   命名空间是一个很棒的主意 - 让我们做更多的事情!

强调已添加)

所以基本上由你决定,但你应该记住这些。

答案 3 :(得分:0)

您可以以任何对您有意义的方式将您的包分成子包和模块(使用包的模块和目录的新文件)。我将首先查看一些流行的Python包的结构,以便全面了解最佳实践。

查看下面的一些软件包,了解可能的内容和最佳实践。特别注意setup.py__init__.py文件以及整个项目的目录结构。