如何使用 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 文件的原因...在这种情况下您不需要这样做,因为大概您想要此代码到运行,这就是您导入它的原因。 (除非是一些测试内容。)
我正在为 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 文件的原因...在这种情况下您不需要这样做,因为大概您想要此代码到运行,这就是您导入它的原因。 (除非是一些测试内容。)