Python脚本可以在控制台运行,但双击.py文件后无法运行

时间:2021-03-18 13:20:25

标签: python-3.x

我在下面写了一个python代码来用粤语(中文)发音当前的年、月、日和工作日。

如果在python控制台上运行,下面的代码可以运行并且发音清晰(这里我使用python 3.7,windows 10)

但是,如果双击 .py 文件,下面的代码将无法运行。

有什么想法吗?

import requests
import os
import datetime
def TTS(text, speed, lan, per):
    """粤语-音色:标准音
    """
    convertTable = {
        '粤语': ('CTE', {'标准音': 0
        })
    }
    data = {
        'tex': text,
        'spd': speed,
        'lan': convertTable[lan][0],
        'per': convertTable[lan][1][per],
        'ctp': 1,
        'cuid': 'baike',
        'ie': 'UTF-8',
        'pdt': 301,
        'vol': 9,
        'rate': 32
    }
    result = requests.get('https://tts.baidu.com/text2audio', params=data)
    try:
        result.json()
    except:
        return result.content
    else:
        raise ValueError

if __name__ == '__main__':
    dt=datetime.datetime.now()
    y=str(dt)[:4]
    if str(dt)[5:6]=="0":
        m=str(dt)[6:7]
    else:
        m=str(dt)[5:7]
    if str(dt)[8:9]=="0":
        d=str(dt)[9:10]
    else:
        d=str(dt)[8:10]
    numbers={
        1:"星期一",
        2:"星期二",
        3:"星期三",
        4:"星期四",
        5:"星期五",
        6:"星期六",
        0:"星期日"
    }
    TextToSpeak=y+"年"+m+"月"+d+"日"+numbers.get(int(dt.strftime("%w")),"None")
    print(TextToSpeak)
    try:
        bindata = TTS(TextToSpeak, 5, '粤语', '标准音')
    except:
        print('Error')
    else:
        with open('date.mp3', 'wb+') as f:
            f.write(bindata)
        os.startfile('date.mp3') 

2 个答案:

答案 0 :(得分:0)

仅适用于 Windows

如果双击 .py 时,它看起来像一个窗口快速打开和关闭,那么您的文件确实被执行了,但速度太快了,您甚至没有时间查看可能的错误。为了测试它是否真的有效,请使用以下代码编写 .py:

text_file = open("test.txt","w")
text_file.write("Hello World!")
text_file.close()

尝试运行,如果创建了 test.txt,则脚本确实被执行了。

双击运行

您可以尝试以下步骤:

1- 只需右键单击脚本文件并转到属性。

2-在常规选项卡中选择“打开方式:”选项,然后从列表中选择python,如果不可用则浏览到python的安装目录并从中选择python.exe。

3- 现在,当您双击文件时,它会自动运行。

如果还是不行

如果这仍然不起作用,您应该打开您最喜欢的文本编辑器并编写此脚本:

ECHO ON
SET PATH=<C:\Users\<User>\AppData\Local\Programs\Python\Python39\>
python <you_program>.py
PAUSE

当然,您应该将路径更改为您计算机上的相应路径。 编写脚本后,您必须将其保存为批处理文件,例如 run.bat

这次尝试双击run.bat

答案 1 :(得分:0)

这是因为 .py 文件实际上是一堆纯文本。 最简单的方法是编写一个调用python脚本的.bat脚本。

例如,如果您有一个名为 run.bat 的文件 你可以有这样的行: python /path/to/python/file

通过双击 .bat 文件,它将在控制台中返回 python 脚本。