当前位置: 首页 > 面试题库 >

在Python中,我可以调用导入模块的main()吗?

云建木
2023-03-14
问题内容

在Python中,我有一个 模块 myModule.py,其中定义了一些函数和一个 main() ,它接受了一些命令行参数。

我通常从bash脚本中调用此main()。现在,我想将所有内容放入一个小 包装中
,因此我想也许可以将我简单的bash脚本转换为Python脚本并将其放入包装中。

因此,实际上如何 MyFormerBashScript.py 的main()函数 调用 myModule.py
的main()函数 ?我能做到吗?如何传递任何 参数


问题答案:

这只是一个功能。导入并调用它:

import myModule

myModule.main()

如果需要解析参数,则有两个选择:

  • 将它们解析为main(),但sys.argv作为参数传递(以下所有代码均在同一模块中myModule):

    def main(args):
    # parse arguments using optparse or argparse or what have you
    

    if name == ‘main’:
    import sys
    main(sys.argv[1:])

现在,您可以导入myModule.main(['arg1', 'arg2', 'arg3'])其他模块并从其他模块调用。

  • main()接受已经解析(中再次全部代码参数myModule模块):

    def main(foo, bar, baz='spam'):
    # run with already parsed arguments
    

    if name == ‘main’:
    import sys
    # parse sys.argv[1:] using optparse or argparse or what have you
    main(foovalue, barvalue, **dictofoptions)

然后导入并myModule.main(foovalue, barvalue, baz='ham')在其他地方调用,并根据需要传入python参数。

这里的技巧是检测何时将模块用作脚本。当您运行python文件作为主脚本python filename.py)时,未import使用任何语句,因此python调用该模块"__main__"。但是,如果将相同的filename.py代码视为模块(import filename),则python会将其用作模块名称。在这两种情况下,__name__都设置了变量,并针对该变量进行测试,以告诉您如何运行代码。



 类似资料:
  • 我是Python新手,我仍然无法理解为什么我们需要一个文件来导入模块。我已经看过了其他的问题和答案,比如这个。 让我困惑的是,我可以在没有的情况下导入我的模块,那么为什么我需要它呢? 以我为例,, index.py, 模块/hello/hello.py, 模块/Hello/HelloWorld.py, 后果 只需要这两条线, 没有任何。有人能解释为什么它是这样工作的吗? 如果是正确的方法,我应该在

  • 之前我安装了pytorch,PIL,numpy。。。使用pip。之后我安装了python3。因此,ipython从python2切换到python3。我必须使用ipython2来启动python2内核。这些模块在ipython2中仍然可以很好地工作,但当我使用python、python2、python2.7运行python脚本时,它们都会引发以下问题: 没有名为PIL的模块(Numpy, torc

  • 问题内容: 在Python中,是否可以为导入的模块定义别名? 例如: …因此具有别名“ short_name”。 问题答案: 也适用于

  • 我正在用Python开发一个包。我使用虚拟环境。我在我的虚拟环境中的. pth路径中设置了模块的根路径,这样我就可以在开发代码和进行测试的同时导入包的模块(问题1:这是一个好方法吗?)。这工作正常(这里有一个例子,这是我想要的行为): 但是,如果我尝试使用PyTest,则会收到一些导入错误消息: 我有点困惑,看起来这表明了一个导入错误,但是Python做得很好,那么为什么PyTest会有问题呢?对

  • 问题内容: 我正在尝试使用该软件包在R中导入python模块。该模块可以在这里找到。我克隆了存储库并运行成功。如果打开python shell,则可以导入。但是,当我尝试将其导入RStudio时,出现以下错误: 我在macOS Sierra版本10.12.6上并通过Anaconda安装了python 3.6。我也尝试过给出python的路径为: 当我从终端运行python时,我得到: 不确定pyt