我的项目目录结构如下所示:
clc
|-clc
| |-__init__.py
| |-clc.py
| |-main.py
|-setup.py
main.py
看起来像这样:
def main():
print "it works!"
setup.py
中的:
config = {
...
'entry_points':
'clc_scripts': ['clc = clc.main:main']
}
}
setup(**config)
当我运行python setup.py build
时,我最终会得到以下结果:
running build
running build_py
creating build
creating build/lib
creating build/lib/clc
copying clc/__init__.py -> build/lib/clc
copying clc/clc.py -> build/lib/clc
copying clc/main.py -> build/lib/clc
即使我指定了一个入口点,也没有创建bin
文件夹。它确实创建了一个文件clc.egg-info/entry_points.txt
:
$ cat clc.egg-info/entry_points.txt
[clc_scripts]
clc = clc.main:main
为什么setuptools不能创建我的入口点可执行文件?
答案 0 :(得分:5)
1)生成脚本的入口点称为console_scripts
。
因此,请修改setup.py
中的入口点名称,如下所示:
config = {
...
'entry_points':
'console_scripts': ['clc = clc.main:main']
}
}
只有build
您的发布内容才会执行 2) Entry points。它们实际上只对install
或develop
有意义。试试python setup.py install
。
答案 1 :(得分:3)
入口点脚本是在安装时创建的,而不是构建时,因为它们需要指向安装python的解释器的正确位置。