/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']
}
)
我能够点击安装和东西。但是当我安装包后运行项目时,
我得 init _。pyc'>没有'主要'属性
我只想在盒子上运行project命令时在script.py的main中运行函数。我做错了什么?
答案 0 :(得分:4)
您的主项目包确实没有main
属性。 project:main
表示:从main
模块导入project
,而__init__.py
中没有此类对象。
您可能想要引用project.script:function1
。该对象确实存在。
最佳做法是定义main()
函数,并将其用作入口点:
def function1():
print "hi"
def main():
function1()
if __name__ == '__main__':
main()
现在,您可以根据需要向main()
添加更多内容。
请注意,当setuptools生成的脚本导入__name__ == '__main__'
模块时,script
测试始终为 false 。该文件不直接运行。
答案 1 :(得分:2)
'console_scripts': [ 'project=project.module:main']