【问题标题】:how to create a desktop app that can run python如何创建一个可以运行python的桌面应用程序
【发布时间】:2020-09-03 16:23:44
【问题描述】:

我使用 html 和 css 制作了一个将输入作为文件路径的 UI。我现在需要的是使我的 python 文件能够采用该路径名并在输入文件上运行 python 脚本。我怎样才能做到这一点?我看到有一种东西叫鳗鱼。但我需要分发这个应用程序,这样安装的每个人都不会安装 chrome 来在 eel 中运行。请为我提供不同的替代方案来链接这两者。我对网络应用很陌生。

【问题讨论】:

  • 我认为你应该使用像FlaskDjango 这样的python 后端框架,寻找那里的文档的详细信息。
  • 但我需要它作为离线网络应用程序。有一个打包机,都像鳗鱼。
  • 哇,我现在也想知道如何做到这一点。
  • 我做了一些搜索,找到了 Eel 和 CEF Python,但我仍然不知道。

标签: javascript python jquery web-applications


【解决方案1】:

在对 Eel 和 PyInstaller 进行了一些研究后,我发现这很容易。我在 Windows 中测试了这些指令,示例代码来自Eel GitHub

环境设置

  • 安装pipenv包来设置虚拟环境:
    $ pip install pipenv
    
  • 安装eel,pyinstaller到虚拟环境:
    $ pipenv install eel pyinstaller
    
  • 由于this issue,我们需要安装setuptools==44.1.0
    $ pipenv install setuptools==44.1.0
    

项目设置

  • 这是文件结构:
    .
    ├── hello.py
    └── web
        ├── favicon.ico
        └── hello.html
    
  • hello.py的内容是:

    import eel
    
    eel.init('web')
    
    @eel.expose
    def say_hello_py(x):
        print('Hello from %s' % x)
    
    say_hello_py('Python World!')
    eel.say_hello_js('Python World!')
    
    eel.start('hello.html', size=(300, 200))
    
  • hello.html的内容是:

    <!DOCTYPE html>
    <html>
        <head>
            <title>Hello, World!</title>
    
            <script type="text/javascript" src="/eel.js"></script>
            <script type="text/javascript">
            <link rel="icon" href="favicon.ico" type="image/x-icon"/>
            eel.expose(say_hello_js);
            function say_hello_js(x) {
                console.log("Hello from " + x);
            }
    
            say_hello_js("Javascript World!");
            eel.say_hello_py("Javascript World!");
    
            </script>
        </head>
    
        <body>
            Hello, World!
        </body>
    </html>
    

建筑

  • 运行以下命令:
    $ pipenv run python -m eel hello.py web --onefile --noconsole
    
  • 您将在dist 文件夹下看到一个hello.exe

更多细节可以阅读Eel和PyInstaller的文档。

但我需要分发这个应用程序,这样安装的每个人都不会安装 chrome 来在 eel 中运行。

我认为您可以在 Eel 中使用 Edge,因为 Edge 安装在每个 Windows 10 中,或者您可能需要使用其他 python GUI 框架。由于您使用 html 和 css 编写 UI,我认为没有任何浏览器可能无法分发。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-10-21
    • 1970-01-01
    • 1970-01-01
    • 2011-05-01
    • 1970-01-01
    • 2016-06-06
    • 2015-01-31
    • 2011-01-01
    相关资源
    最近更新 更多