Python setup.py中的入口点

Python setup.py中的入口点,python,pip,packages,entry-point,Python,Pip,Packages,Entry Point,我能够pip安装和东西。但当我在安装包后运行project时, 我发现init_uz.pyc'>没有“main”属性 我只想在框上运行project命令时运行script.py main中的函数。我做错了什么?您的主项目包确实没有main属性project:main是指:从project模块导入main,您在\uuuuu init\uuuuu.py中没有这样的对象 您可能希望参考project.script:function1。那个物体确实存在 最佳做法是定义main()函数,并将其用作入口点:

我能够pip安装和东西。但当我在安装包后运行project时, 我发现init_uz.pyc'>没有“main”属性

我只想在框上运行project命令时运行script.py main中的函数。我做错了什么?

您的主项目包确实没有
main
属性
project:main
是指:从
project
模块导入
main
,您在
\uuuuu init\uuuuu.py
中没有这样的对象

您可能希望参考
project.script:function1
。那个物体确实存在

最佳做法是定义
main()
函数,并将其用作入口点:

/project  
../project/script.py  
../project/__init__.py  (This is a blank File)
setup.py  
other files like README.

#script.py
def function1():
    print "hi"

def main():
    function1()

if __name__ == '__main__':
    main()


#setup.py
setup(
name='project',
version= __version__,
long_description=markdown_contents,
packages=['project'],
entry_points={
  'console_scripts': [ 'project=project:main']
  }
)
现在,您可以根据需要向
main()
添加更多内容


请注意,当setuptools生成的脚本导入
脚本
模块时,
\uuu name\uu=='\uu\u main\uu'
测试将始终为false。该文件不是直接运行的。

如果我在if name==“main”:下有一系列函数,并且我想按顺序执行它们,该怎么办?谢谢你的回复。@script\u kiddie:the
\u main\u
测试不是一个对象。定义一个单独的函数
main()
并调用该函数。仍然会给出init.pyc'>没有“main”属性的情况。检查已更正的代码。检查入口点;它应该是
项目。脚本:function1
,而不是
项目:function1
。非常重要!您可能需要重新启动/启动一个新的控制台以查看“入口点”的工作情况,我花了一段时间没有重新启动我正在处理的cmd,我无法理解它,直到我重新启动计算机进行windows更新,所有的控制台都开始工作。哈哈,希望我的痛苦能帮助别人。
def function1():
    print "hi"

def main():
    function1()

if __name__ == '__main__':
    main()
'console_scripts': [ 'project=project.module:main']