从其图标中生成可执行的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

先感谢您。

虽然你的问题可能出于多方面的原因(过于宽泛,偏离主题,每个问题不止一个主题,在一些几乎重复的边缘),我会回答问题。

第一个问题:关于运行一个(仅文本)脚本“从一个图标”,你提到它:

  • 您的脚本是纯文本的,需要在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 

    shebangs ; 脚本的第一行,告诉shell如果脚本是可执行的,如何运行它,并在脚本路径之前运行它而不使用python 。 由于你使用python3 ,脚本中的shebang通常应该是:

     #!/usr/bin/env python3 

    更多关于这一点,以及上面链接中的shebang和命令之间的关系。

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

     chmod +x /path/to/file 

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

$ chmod + x hello.py

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

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

另外,为了防止终端在程序结束时关闭(例如,如果你想保持程序输出到屏幕上的终端),在python3.5中你需要把这一行放在程序的最后:

输入()

希望这可以帮助。