我在不同的.py文件(例如DisplayTools.py,CollectionTools.py ...)中开发python函数,以便将它们作为工具导入更通用的文件Start.py中.如果所有文件都在同一目录中,它可以正常工作.我可以在Start.py"import DisplayTools"中说...但是如何以更多的项目方式组织这些并且更加用户友好(他们只需要处理Start.py文件).例如,有这样的文件组织:
项目/
Start.py
工具/
DisplayTools.py
CollectionTools.py
我已经阅读了__init__文件的使用,但它们是如何工作的,在哪里放置这些文件以及它们包含哪些内容?
如果你有一些帮助,可以通过这种方式组织我的项目.
非常感谢
我会稍微重构您的代码组织,并为您的顶级目录提供更具描述性的名称.今天,我选happy_bananas.所以,假设您按照以下方式组织文件:
happy_bananas
start.py
DisplayTools.py
CollectionTools.py
Run Code Online (Sandbox Code Playgroud)
那么你需要做的就是添加一个空__init__.py文件,你可以像任何其他包一样使用它,例如:
happy_bananas
__init__.py
start.py
DisplayTools.py
CollectionTools.py
Run Code Online (Sandbox Code Playgroud)
现在,如果你能做到:
from happy_bananas import DisplayTools
就像你以前一样.
现在,要将其添加到您的系统中,您需要打包它并使用安装脚本.你可以使用distutils或者setuptools也许最简单的现有描述如何做到这一点是在Zed Shaw的学习Python艰难的方式练习46.你真的可以按照那里的描述复制/粘贴这些文件,最后得到如下目录结构:
happy_bananas
setup.py
tests
test_happy_bananas.py
happy_bananas
__init__.py
start.py
DisplayTools.py
.
.
Run Code Online (Sandbox Code Playgroud)
然后,当您编写了安装脚本时,您可以进入您的文件夹并运行python setup.py install(或python setup.py develop)并能够import happy_bananas在任何文件中.
另外,python中的命名约定是将snakecase用于文件和函数名称.因此DisplayTools.py,重新命名它会更好display_tools.py.CamelCase通常仅为类名保留.