通过图标使 Python 程序可执行

通过图标使 Python 程序可执行

我希望通过单击图标在窗口中执行 Python 程序。

这是我自己学习编码和 Ubuntu 的第一天,因此非常感谢您的解释和额外的细节。

我正在使用的代码示例

print("Game Over")
input("\n\nPress the enter key to exit")

在 IDLE 中运行正常,但当我单击 .py 文件图标时,它会打开一个编辑器,而不是程序/窗口

我目前已完成的步骤

  • 右键单击.py 文件并将权限设置为“允许作为程序执行文件”
  • 我尽可能多地阅读,它似乎在向我提供一些我无法理解的信息。

例子

#!/usr/local/bin/python
#!/usr/bin/env python
CHMOD X

我一点都不懂,也不知道在哪里可以用。

我正在使用 Ubuntu 14.04 和 Python 3

先感谢您。

答案1

尽管您的问题可能由于多种原因而处于边缘位置(太宽泛、偏离主题、每个问题涉及多个主题、处于许多几乎重复的边缘),但我会回答这些问题。

第一个问题:关于“从图标”运行(纯文本)脚本,正如您提到的:

  • 您的脚本是纯文本的,需要在Idle终端窗口中运行。这意味着,如果您想通过双击图标来运行它,您需要创建一个.desktop文件,其中包含定义在终端窗口内运行脚本。顺便说一下,
    这些.desktop文件实际上是 Ubuntu 上安装的所有 GUI 应用程序的一部分。

    一个非常基本的示例,适合您的脚本:

    [Desktop Entry]
    Name=Test
    Exec=/home/jacob/Bureaublad/test.py
    Terminal=true
    Type=Application
    

    最有趣的几行是:

    Exec=/home/jacob/Bureaublad/test.py
    

    其中定义了运行脚本的命令。
    有关如何使用 shebang、语言扩展创建命令、脚本是否可执行的更多信息,请参阅这里

    以及以下行:

    Terminal=true
    

    这说明该脚本需要在终端窗口中运行。

    您可以.desktop使用图标和更多选项来扩展文件,具体取决于您使用它的具体用途,请参阅这里

  • 如何使用该.desktop文件

    • 将上面的代码粘贴到一个空文件中,另存为。根据我添加的链接test.desktop编辑行中的命令,创建运行脚本的命令。Exec=/home/jacob/Bureaublad/test.py
    • 如果您从桌面使用该文件,请使用以下命令使其可执行:

      chmod +x /path/to/Test.desktop
      

    或者,您可以将.desktop文件复制(移动)到~/.local/share/applications以使其在 Dash 中可用。全局安装的应用程序将其.desktop文件存储在 中/usr/share/applications。在最后两个目录中,无需使.desktop文件可执行。

关于您不理解的示例行

  • 行:

    #!/usr/local/bin/python
    #!/usr/bin/env python
    

    她怦然心动;脚本的第一行,告诉 shell 如果脚本可执行,则如何运行它,并且您在运行它时无需python在脚本路径之前输入。由于您使用了python3,因此脚本中的 shebang 通常应为:

    #!/usr/bin/env python3
    

    有关这一点的更多信息,以及 shebang 和命令之间的关系,请参见上面的链接。

  • CHMOD X (?)chmod +x可能就是您的意思。如上所述,您可以使用以下命令使文件可执行:

    chmod +x /path/to/file
    

答案2

正如其他人提到的,chmod +x 是使程序可执行所必需的。例如,对于程序 hello.py,您可以在终端中输入以下内容:

$ chmod + x hello.py

现在,不知道以前的版本是否也是如此,但在 Ubuntu 16.04 LTS 中,必须将图标的行为设置为允许单击图标来执行程序。您可以按照以下方式执行此操作:

转到文件浏览器窗口,然后将鼠标光标移动到屏幕顶部并选择编辑>首选项>行为,然后选择“打开时运行可执行文本文件”或“每次询问”。

另外,为了防止终端在程序结束时关闭(例如,如果您想将程序的输出保留在屏幕上的终端上),在 python3.5 中您需要在程序末尾放置此行:

输入()

希望这可以帮助。

答案3

编写一个在命令提示符下运行的.bat 文件。在文件中,只写一行,如:C:/Python/Python38/python.exe c:/MyProject/mainFile.py

其中,C:/Python/Python38/python.exe是Python 3.8,c:/MyProject/mainFile.py是要执行的python脚本文件。

创建 .bat 文件的快捷方式并将其作为图标放在 Windows 屏幕上。就是这样。

相关内容