python – 散景服务器的入口点

我提供了一个工具作为我的python包的一部分,使用散景可视化参数空间.启动它的正常方法是:

$bokeh serve --show my_package/tools/my_tool.py

这将打开浏览器并显示交互式图.
但是,当我使用pip / PyPI安装此软件包时,用户无法轻松访问此文件夹,因此我想在setup.py中为此提供一个入口点.

包装布局:

folder
|
|--- my_package
|     |
|     |- __init__.py
|     |- __main__.py
|     |- some_code.py
|     |
|     +--- tools
|           |
|           +--- my_tool.py
|
+--setup.py

在我的setup.py中,我已经指定了main方法的入口点:

setup.py

from setuptools import setup, find_packages

setup(
    name = "my_package",
    packages = find_packages(),
    entry_points = {
        'console_scripts': [
            'my_package = my_package.__main__:main'
          ]
    },
    [...],
)

但是,我发现启动散景服务器并显示界面的唯一方法是创建另一个这样的python脚本

import os
from subprocess import call

def main():
    p = os.path.realpath(__file__)
    prefix, _ = os.path.split(p)
    bokeh_server_file = os.path.join(prefix, "my_tool.py")
    call(["bokeh", "serve", "--show", bokeh_server_file])

if __name__ == "__main__":
    main()

将它放在tools文件夹中,并为此脚本main方法创建一个入口点. *颤抖*必须有一个更好的方法来做到这一点.

是否可以使用setuptools提供这种入口点,还是有另一种方法来实现这种行为?

解决方法:

如果我没有弄错,你可以使用Embedding Bokeh Server as a Library文档中介绍的嵌入式服务器路由.关于在文档的这一部分之后使用散景服务器客户端api,有一个跟进线.听起来他们正在研究将来连接到服务器的更多方法,以及他们讨论用例的部分.

上一篇:python – 如何修复找不到sdist pip – * .tar.gz


下一篇:python – Babel:调用setup.py install时编译翻译文件