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

标签 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 没有创建我的入口点可执行文件?

最佳答案

1) 生成脚本的入口点叫做console_scripts .

因此在您的 setup.py 中修复入口点的名称,如下所示:

config = {
    ...
    'entry_points':
        'console_scripts': ['clc = clc.main:main']
    }
}

2) Entry points当您只是 build 您的发行版时,它不会被执行。它们实际上只对 installdevelop 有意义。试试 python setup.py install

关于python - 为什么 setuptools 不创建我的入口点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22257048/

相关文章:

c++ - 在 Windows 中以编程方式调用 "main"函数

linux - 为什么一个 linux 命令在容器内运行但在 entrpoint.sh 中不起作用

python - 为什么 pip 尝试在 python2 virtualenv 中安装不兼容版本的库?

python - 使用 pip install 运行自定义代码失败

python - 检查输入 : expected flatten_input to have 3 dimensions, 但获得形状为 (None, 100, 100, 1) 的数组时出错

python - 二叉搜索树中三种类型节点的计数(递归)

Python 包结构,setup.py 用于运行单元测试

C:如何实现动态函数复制?

Python 脚本适用于 linux 但不适用于 windows,我真的很绝望

python - 在 Windows 10 上安装 Anaconda 5.0.0 无法正常工作