我试图通过子进程调用 pelican 来自动发布博客,但是当我尝试 which pelican
时在 shell 中并打开它。我发现了这个
#!/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')()
)
虽然我期待看到对主函数的调用,但当有人将参数从 shell 传递给 pelican 时,该函数就会被调用。(我不是在谈论 pelican-quickstart
)
我试图研究鹈鹕项目,我认为它是 __init__.py
它有 main 函数,但通常我会有一个调用此 main 函数的可执行包装器,所以任何人都可以将我重定向到上面的代码传递用户传递的参数的函数吗?
最佳答案
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
命令的入口点是 pelican
模块中的 main()
函数;您还可以通过 import 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
关于python - 用户从 shell 执行的 pelican 可执行脚本是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30872327/