是否有在一系列 python 文件中运行主文件的标准?

Posted

技术标签:

【中文标题】是否有在一系列 python 文件中运行主文件的标准?【英文标题】:Is there a standard for running a main file in a series of python files? 【发布时间】:2017-05-07 14:45:10 【问题描述】:

我有一个目录我想分发给同事,其中包含以下文件:

__init__.py
common.py
file_downloader.py
builder.py
repo_setup.py

现在,我设置为主要功能的文件是 repo_setup.py,因为它有我正在寻找的 def main():

我通常会运行该文件,一切正常。虽然运行该文件不是很直观,但很好奇主文件启动所有内容的标准是什么

我正在考虑创建一个 main.py 来启动所有内容,并且似乎还有一个自述文件。

是否有用于开发包含多个文件的项目并通过电子邮件或 U 盘分发的 Python 标准?

我觉得不需要利用 setup.py,因为它不需要任何其他包来运行。也许这实际上是最好的行动方案。我的第一眼看不到任何运行属性,它接受可执行列表以在设置复杂后按顺序运行。也许执行 setup.py 会在安装完所有包后按顺序运行 python 文件列表?

【问题讨论】:

不太清楚你想要完成什么。调用其他文件的文件?这不就是进口的目的吗? Understanding the main method of python的可能重复 我了解主要方法的用途,但我试图创建一个易于使用的文件结构。这样用户将获得我的目录,他们只运行一个特定的文件。我想尝试遵循 Python 标准。通常我只需单击并运行一个文件并利用__name__,但我不确定是否有运行应用程序的标准,给定文件列表 【参考方案1】:

您可以使用 idlelib 为 IDLE 完成部分工作。呼叫目录project。添加project.__main__

from project.repo_setup import main
main()

project 目录(及其 .py 文件)放入(解压缩).../lib/site-packages。这会将project 放在sys.path 上,使其既可导入又可运行(作为主模块)。使用python -m project 从命令行运行。 (或 python3 取决于版本和操作系统。)

【讨论】:

所以你是说,创建一个与目录同名的文件,然后从repo_setup中导入main,然后运行? 不完全。添加一个名为__main__.py的文件in项目目录,无论你怎么称呼它。例如,查看 lib/idlelib 的文件列表。选项-m 表示“将此(可导入)文件作为主模块运行”。就像导入目录实际上会导入目录/__init__.py 一样,运行目录实际上会运行 main.py。换句话说,python -m import.name 等价于python somepath/import/name.py,只是-m 让用户知道somepath,这取决于特定的安装。

以上是关于是否有在一系列 python 文件中运行主文件的标准?的主要内容,如果未能解决你的问题,请参考以下文章

Mysql系列-数据库

在一组 html 文档上运行 javascript 文件

编程之路:MySql系列之初识

是否有在单个过程中在运行时初始化可变数量的对象的过程?

是否有在 Google Colab 上运行 Web 应用程序的通用方法?

有在linux平台下运行的程序,想移植到windows平台下,但有些头文件不知道该怎么办?