为什么setuptools不能创建我的入口点?

时间:2014-03-07 17:43:31

标签: python setuptools entry-point

我的项目目录结构如下所示:

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不能创建我的入口点可执行文件?

2 个答案:

答案 0 :(得分:5)

1)生成脚本的入口点称为console_scripts

因此,请修改setup.py中的入口点名称,如下所示:

config = {
    ...
    'entry_points':
        'console_scripts': ['clc = clc.main:main']
    }
}
只有build您的发布内容才会执行

2) Entry points。它们实际上只对installdevelop有意义。试试python setup.py install

答案 1 :(得分:3)

入口点脚本是在安装时创建的,而不是构建时,因为它们需要指向安装python的解释器的正确位置。