如何使用 if __name__ == ' __main__' 条件创建控制台脚本?

How to create a console script using if __name__ == ' __main__' condition?

我正在为 python 脚本安装创建一个安装文件。通常,文档使用例如下一个安装文件:

from setuptools import setup

# setup.py file
setup(name='test',
      version='0.0.0',
      packages=['test'],
      entry_points={
      'console_scripts': [
              'test = test.test:main'
           ]
         },
      )

调用这个:

# test/test.py file
def main():
    print('Hello!')

if __name__ == '__main__':
    main()

但是,我的问题是我的 "main" 代码函数低于 if __ name__ == '__ main __' 条件。我无法创建 main() 函数,因为这代表了开发工作的巨大变化

有什么解决办法吗?或者我必须花时间创建一个 main() (或任何名称)函数?

据我了解,您有一堆代码,您只想在未导入文件时调用这些代码(这就是 if 语句的作用)。但是,我敢肯定,在每行之前添加一个制表符会很烦人。

解决方案:使用 this (works if you have linux; sure there are alternate solutions) 之类的东西,它是 sed -i 's/^/\t\t/' <filename> 在一个单独的文件中,将您的主要代码复制粘贴到其中以添加选项卡。将此选项卡式代码复制并粘贴到您的 def main(): 中,瞧。

但是,看起来这只是为了导入,这就是您使用 setup.py 文件的原因...在这种情况下您不需要这样做,因为大概您想要此代码到运行,这就是您导入它的原因。 (除非是一些测试内容。)