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

hug*_*hes 3 python setuptools entry-point

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

clc
 |-clc
 |  |-__init__.py
 |  |-clc.py
 |  |-main.py
 |-setup.py
Run Code Online (Sandbox Code Playgroud)

main.py 看起来像这样:

def main():
    print "it works!"
Run Code Online (Sandbox Code Playgroud)

setup.py:

config = {
    ...
    'entry_points':
        'clc_scripts': ['clc = clc.main:main']
    }
}
setup(**config)
Run Code Online (Sandbox Code Playgroud)

当我跑步时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
Run Code Online (Sandbox Code Playgroud)

bin即使我指定了入口点,也没有创建文件夹.它确实创建了一个文件clc.egg-info/entry_points.txt:

$ cat clc.egg-info/entry_points.txt
[clc_scripts]
clc = clc.main:main
Run Code Online (Sandbox Code Playgroud)

为什么setuptools没有创建我的入口点可执行文件?

Luk*_*raf 5

1)调用生成脚本的入口点console_scripts.

因此,请在此处修改入口点的名称setup.py:

config = {
    ...
    'entry_points':
        'console_scripts': ['clc = clc.main:main']
    }
}
Run Code Online (Sandbox Code Playgroud)

2) 只有您的发行版才会执行入口点build.他们真的只对install或有意义develop.试试python setup.py install.