我正在写一个软件包foobar,它由alice,bob,charles和david组成。在
根据我对Python包和模块的理解,这意味着我将创建一个foobar文件夹,包含以下子目录和文件(如果我错了,请更正)
foobar/
__init__.py
alice/alice.py
bob/bob.py
charles/charles.py
david/david.py
该包应该是可执行的,这样除了使模块alice、bob等可用作“库”之外,我还应该能够在如下脚本中使用foobar:
python foobar--args=someargs
问题1:
一个包可以被执行并在上面描述的脚本中使用吗?在
问题2
各个模块将使用我希望重构到公共库中的代码。这是否意味着创建一个新的子目录“foobar/common”并将普通.py在那个文件夹里?在
问题3
foo模块将如何导入公共模块? 是'from foobar import common'还是因为这些模块是包的一部分,所以我不能使用它?在
问题4
我想为在脚本中使用foobar包添加逻辑(假设可以这样做-我只看到过对模块这样做)
使用的代码类似于:
^{pr2}$我应该把这个逻辑放在哪里(在哪个文件中)?在
第一季度和第四季度。是的,请将您的:
在
foobar/__init__.py
不,您必须创建}。所有模块也是如此。因此,正确的结构是:
^{pr2}$foobar/common.py
,而不是{你不想在这个模块里做什么。此外,它根本不起作用,因为如果一个目录中包含
__init__.py
,那么它就变成了Python包,而您还没有在子目录中创建它们。在是的。您也可以简单地使用
import common
,但是如果您的库将用于具有自己的名为common
的模块/包的项目中,那么它可能会导致冲突。所以我更喜欢使用完全限定的模块名。在相关问题 更多 >
编程相关推荐