首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python脚本可在控制台上运行,但在双击.py文件后无法运行

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

Stack Overflow用户
提问于 2021-03-18 21:20:25
回答 2查看 40关注 0票数 0

我已经在下面写了一段python代码,从说粤语的人那里读出当前的年、月、日和周日。

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

但是,如果双击.py文件,则无法运行以下代码。

有什么想法吗?

代码语言:javascript
复制
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') 

EN

回答 2

Stack Overflow用户

发布于 2021-03-18 21:24:35

仅适用于Windows

如果双击.py看起来像是一个窗口很快地打开和关闭,那么你的文件实际上是被执行了,但它是如此之快,以至于你甚至没有时间去查看可能的错误。为了测试它是否真的可以工作,用下面的代码编写一个.py:

代码语言:javascript
复制
text_file = open("test.txt","w")
text_file.write("Hello World!")
text_file.close()

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

双击即可运行

您可以尝试以下步骤:

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

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

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

如果它仍然不起作用

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

代码语言:javascript
复制
ECHO ON
SET PATH=<C:\Users\<User>\AppData\Local\Programs\Python\Python39\>
python <you_program>.py
PAUSE

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

这一次,尝试双击run.bat

票数 0
EN

Stack Overflow用户

发布于 2021-03-18 22:44:32

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

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

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66691956

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档