python - 用户从 shell 执行的 pelican 可执行脚本是什么?

标签 python executable pelican

我试图通过子进程调用 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 函数的可执行包装器,所以任何人都可以将我重定向到上面的代码传递用户传递的参数的函数吗?

最佳答案

来自pelican's setup.py :

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/

相关文章:

Python正则表达式用于解析以给定的BNF格式定义的树结构

linux - 如何使用 bash 脚本在不同的文件夹中运行可执行文件?

powershell - 从 PowerShell 脚本创建可执行的 .exe 文件?

Pelican - 将图像添加到摘要

MarkDown 表格未在 Pelican 中呈现

python - 我可以向写入单元格的公式添加字符吗?

python - 如何在 App Engine 中读取 Google Storage 中的 zip 文件?

python - 在 Pelican 中从文件名自动生成标题

python - ProcessPoolExecutor 无法执行我自己的功能,但执行打印工作

python - 可执行的 python 程序 - 禁用 cmd 行?