【问题标题】:can i create a icon to start my cython compiled program (python)我可以创建一个图标来启动我的 cython 编译程序(python)吗
【发布时间】:2019-03-07 22:21:46
【问题描述】:

python 程序编译成 cython

  • 终端打不开
  • 指向我的虚拟环境
  • >>> import my_program

反而想让它更加用户友好 并从图标启动程序

【问题讨论】:

  • 欢迎来到 SO。请阅读此how-to-ask 以使用足够且具体的信息来描述您的问题来改进您的问题。
  • 我尝试详细解释问题,但不得不以某种方式对其进行更改,以便以可接受的格式发布它
  • 我用python写了一个程序,然后编译成cython,它工作正常,
  • 但我希望我的客户只需单击一个图标即可启动程序,而不是在终端中启动程序

标签: python cython compiled


【解决方案1】:

我不确定您使用的是什么操作系统。但是,两者的答案都是一样的。

在 Windows 上:

您需要创建一个 .bat 文件。是already questions about how to do this to use Python。 .bat 文件只是一个文本文件,其中包含您要执行的命令列表(即您通常在命令提示符中键入的任何内容)。 Python 行将是:

 C:\path\to\python\pythonw.exe -m my_program %*

pythonw 代替 Python 避免了创建窗口。 %* 将任何命令行参数传递给您的程序(不是必需的,但可能是很好的做法)。 -m 将您的程序版本为 __main__ 模块。

编辑: -m 不适用于已编译的 (Cython) 模块。要运行这些,您应该改为使用C:\path\to\python\pythonw.exe -c "import my_program" %*

.bat 文件应该可以通过单击来执行。

在 Linux(我认为也是 OSX)上:

您需要一个 shell 脚本,而不是 .bat 脚本。同样,它只是要执行的命令列表(因此您通常在终端中输入的内容)。你的 python 行应该是

python -m my_program $@

或者(如果my_program是一个编译模块)

python -c "import my_program" $@

$@ 正在转发命令行参数。然后,您需要使 shell 脚本可执行。见this very comprehensive question。使其可执行后,您应该能够单击它来运行它。

【讨论】:

  • 非常感谢,我会在尝试所有这些后立即投票,谢谢
  • Linux(客户端在 OSX 上)
  • 您确实意识到您必须在 OSX 上为客户端重新编译 Cython 模块? (在 Linux 上编译的模块无法在 OSX 上运行)
  • 嗨,很抱歉,生活发生了,但现在,想试试你解释的内容,我在 Linux 上。不知道我到底应该做什么。我经常打字
  • 那么我会用 python -m my_program $@ import my_program 创建一个文本文件吗?我先去终端的 denderlenv,这有关系吗?
【解决方案2】:

ON Linux (Ubuntu) - 为 Cython 编译 .so 文件创建图标 (Python) 如果您有一个设置,请打开 virtualenv

  1. 创建一个shell脚本 打开文本编辑器(文件)并输入以下行

    #below is a line you need to put at the top 
    #!/bin/bash
    
    #activate virtual environment
    source virtual_environment_name/bin/activate
    
    # change to the directory where the Cython .so file is
    cd /home/user 
    
    #import the .so file (name only)
    python -c "import my_program" $@
    

您的主目录(终端启动的目录)中的安全文件名.sh 或将正确的路径放入您的 .desktop 文件中

  1. 使用以下内容创建桌面图标 打开文本编辑器并输入

    [Desktop Entry]
    
    Type=Application
    
    Terminal=true
    
    Name=Name_of_the_icon
    
    #the icon to use for the launcher
    Icon=/home/user/picture.PNG
    
    #executes the shell script we created
    Exec=gnome-terminal -e "bash -c './name_of_shell_script.sh;$SHELL'"
    Categories=Application;
    

现在保护扩展名为 .desktop 的文件

重要:

您必须使这两个文件都可执行:右键单击、属性、权限 勾选使可执行的框 或在终端运行 chmod +x 文件名

现在点击桌面上的图标来运行你的 Cython 编译(python 程序) (如果您不想创建特定图标,也可以直接单击 .sh 文件运行程序)

如果您删除 ;$SHELL 来自gnome-terminal -e "bash -c './name_of_shell_script.sh;$SHELL'" 那么程序关闭后终端也会关闭

如果你只有一个普通的 python 程序(未编译),你只有 创建一个 .desktop 文件并将#!/usr/bin/env python 放在开头 您的脚本(python 程序),并将您的 python 程序的路径而不是 .sh 文件放在 .desktop 文件中。并使 .PY 文件可执行

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-18
    • 2019-03-14
    • 1970-01-01
    • 2011-02-03
    相关资源
    最近更新 更多