我试图通过子流程调用pelican进行自动博客发布,但是当我在shell中尝试which pelican
并打开它时。我发现了这个
#!/usr/bin/python
# EASY-INSTALL-ENTRY-SCRIPT: 'pelican==3.5.0','console_scripts','pelican'
__requires__ = 'pelican==3.5.0'
import sys
from pkg_resources import load_entry_point
sys.exit(
load_entry_point('pelican==3.5.0', 'console_scripts', 'pelican')()
)
虽然我期待看到一个对main函数的调用,当有人将参数从shell转移到pelican时会被调用。(我不是在谈论pelican-quickstart
)
我试着查看鹈鹕项目,我认为它的__init__.py
具有主要功能,但通常我会有一个可执行包装器来调用这个main函数,所以任何人都可以将我重定向到上面代码的哪个函数传递用户传递的参数?
答案 0 :(得分:1)
entry_points = {
'console_scripts': [
'pelican = pelican:main',
'pelican-import = pelican.tools.pelican_import:main',
'pelican-quickstart = pelican.tools.pelican_quickstart:main',
'pelican-themes = pelican.tools.pelican_themes:main'
]
}
因此,pelican
命令的入口点是main()
模块中的pelican
函数;您也可以通过import pelican; pelican.main()
与其联系。 (同样,对于pelican-quickstart
:import pelican.tools.pelican_quickstart; pelican.tools.pelican_quickstart.main()
)。
要查找文件:
import pelican
print pelican.__file__
...或者,直接处理main
函数:
>>> from pkg_resources import load_entry_point
>>> mainfunc = load_entry_point('pelican', 'console_scripts', 'pelican')
>>> print mainfunc.__module__
'pelican'
>>> mainfunc()
WARNING: Feeds generated without SITEURL set properly may not be valid