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



我在下面写了一个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')

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

例如,如果您有一个名为run.bat的文件您可以使用以下线路:python /path/to/python/file

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

仅适用于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>AppDataLocalProgramsPythonPython39>
python <you_program>.py
PAUSE

当然,你应该用电脑上相应的路径来更改路径。编写完脚本后,必须将其保存为批处理文件,例如run.bat

这次尝试双击运行.bat

最新更新