我的项目目录结构是这样的:
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
您的发行版时,它不会被执行。它们实际上只对 install
或 develop
有意义。试试 python setup.py install
。
关于python - 为什么 setuptools 不创建我的入口点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22257048/