双击执行文件

双击执行文件
#! /home/mehmet/anaconda3/bin/python3

from os import pipe, sep
import os
import time
import math

os.system("figlet SAYI BULMACA")

rakam1 = [[1,3,5,7,9,11,13,15],
          [17,19,21,23,25,27,29,31],
          [33,35,37,39,41,43,45,47],
          [51,53,55,57,59,61,63]]
rakam2 = [[2,3,6,7,10,11,14,15],
          [18,19,22,23,26,27,30,31],
          [34,35,38,39,42,43,46,47],
          [50,51,54,55,58,59,62,63]]
rakam3 = [[4,5,6,7,12,13,14,15],
          [20,21,22,23,28,29,30,31],
          [36,37,38,39,44,45,46,47],
          [52,53,54,55,60,61,62,63]]
rakam4 = [range(8,16),
          range(24,32),
          range(40,48),
          range(56,64)]
rakam5 = [range(16,24),
          range(24,32),
          range(48,56),
          range(56,64)]
rakam6 = [range(32,40),
          range(40,48),
          range(48,56),
          range(56,64)]          

time.sleep(2)

print("""

    Sayı bulmaca oyunumuza hoş geldiniz.

    Şimdi sizden aklınızda 1 ve 63 dahil olacak şekilde 
    1'den 63'e kadar bir sayı tutmanızı istiyorum.

    Sonrasında siz bir takım sayılar göstereceğim ve tuttuğunuz sayının
    gördüğünüz sayılar içerisinde olup olmadığını soracağım.

    Bu şekilde tuttuğunuz sayıyı bulmayaca çalışacağım.
    
    """)
    
tahmin_basla = input("Aklınızdan bir sayı tuttunuz mu?\nE/H\nBitirmek için H'ye basabilirsiniz\n")



skor = []

sayi = 0

while sayi < 1:

    if tahmin_basla == "e":
        print("İyi eğlenceler dilerim")
    else:
        print("Oyunu bitiriyorum")
        break
            
    

    for i in rakam1:
        print(*i)
    tahmin1 = input("Tutuğunuz sayı bu rakamlar içerisinde var mı?\nVAR(V) / YOK(Y)\n")
    if tahmin1 == "v":
        skor.append(int(1))

    time.sleep(1)    
        
    for i in rakam2:
        print(*i)
    tahmin2 = input("Tutuğunuz sayı bu rakamlar içerisinde var mı?\nVAR(V) / YOK(Y)\n")
    if tahmin2 == "v":
        skor.append(int(2))
        
    time.sleep(1)   

    for i in rakam3:
        print(*i)
    tahmin3 = input("Tutuğunuz sayı bu rakamlar içerisinde var mı?\nVAR(V) / YOK(Y)\n")
    if tahmin3 == "v":
        skor.append(int(4))
        
    time.sleep(1)   

    for i in rakam4:
        print(*i)
    tahmin4 = input("Tutuğunuz sayı bu rakamlar içerisinde var mı?\nVAR(V) / YOK(Y)\n")
    if tahmin4 == "v":
        skor.append(int(8))
        
    time.sleep(1)   

    for i in rakam5:
        print(*i)
    tahmin5 = input("Tutuğunuz sayı bu rakamlar içerisinde var mı?\nVAR(V) / YOK(Y)\n")
    if tahmin5 == "v":
        skor.append(int(16))
        
    time.sleep(1)   

    for i in rakam6:
        print(*i)
    tahmin6 = input("Tutuğunuz sayı bu rakamlar içerisinde var mı?\nVAR(V) / YOK(Y)\n")
    if tahmin6 == "v":
        skor.append(int(32))
            
    time.sleep(1)   

    bildin = sum(skor)

    print("Şimdi tahmin etmeye çalışıyorum...")
    time.sleep(3)
    print(f"Tuttuğunuz sayı : {bildin}\n"
            "Oynadığınız için teşekkürler\n")
    
    time.sleep(1)   

    sayi =+ 1

    if sayi == 1:
        sorucevap = input("Tekrar Oynamak ister misiniz?\nE/H\n")
        if sorucevap == "e":
            sayi = 0
        else:
            print("Görüşmek üzere....")
            break

你好,我是业余使用 Python 语言的,几个月前,我决定在 Windows 10 之后使用 Ubuntu 并转而使用。当然,我也知道如何在初学者水平上使用 Linux 发行版。

我使用 Visual Studio Code 准备了您上面看到的代码,并以 .py 扩展名保存了它。

我的目标是:

就像在 Windows 中一样,我希望代码通过双击文件来运行,并在有人使用后将其关闭。运行时,无论是窗口还是终端屏幕都无关紧要。

首先,我必须指出,我为这个过程尝试了几种方法:

  1. pyinstaller -F filename.py我创建了一个 exe 到 dist/file 但它不起作用。

  2. 我用 尝试过chmod u + x filename

  3. 我在打开属性时激活了询问选项。我不想让他问我双击后会发生什么

  4. 我创建了一个扩展名为 .desktop 的文件。我已将代码粘贴到其中(我不知道代码是否正确。)

结果,我什么也做不了。

有人可以详细解释一下该怎么做吗?

答案1

解决了

我的问题解决了

exec = gnome-terminal -e "python3 文件路径/filename.py" >>> 所有问题都是这样的

我的问题解决了。

[桌面条目] 版本 = 1.0 类型 = 应用程序 名称 = 运行 注释 = 终端执行 执行 = gnome-terminal -e "python3 /home/here is username/Desktop/Myprograms/Shortcut.py" 图标 = emblem-dropbox-syncing 路径 = 终端 = false StartupNotify = false

答案2

你的脚本第一行有错误。应该有没有空间在 shebang ( #!) 和 Python 解释器路径之间 ( /home/mehmet/anaconda3/bin/python3- 还要检查此路径是否正确,如果不正确则进行修复)。如果删除它并使文件可执行,它应该在双击后运行。

相关内容