首页 > 编程问答 >PythonW 不运行脚本。严重地

PythonW 不运行脚本。严重地

时间:2024-07-20 23:56:15浏览次数:11  
标签:python

因此,使用 Windows 10 和 Python 3.6。我创建了一个 .py 脚本,它可以使用命令 python myscript.py 在命令提示符下正常运行,但是当我制作该脚本的精确副本并为其赋予扩展名 .pyw ,并尝试使用 pythonw 运行它时命令 pythonw myscript.pyw ,什么也没有发生。 pythonw 根本没有出现在我的任务管理器中,并且该脚本的一部分向我的松弛通道发送反馈,这样我就知道它是否“在后台运行”。我确实在任务管理器中看到 pythonw 闪烁了半秒然后消失了,所以这告诉我脚本在某种程度上崩溃了,但是如果它与 python 一起运行得很好,为什么会出现这种情况呢?我想将此脚本作为后台进程运行,而不是使用 python 命令。

我尝试添加:

sys.stdout = open('log.txt', 'w')
sys.stderr = open('err.txt', 'w')

.pyw 脚本的顶部以强制输出到这些文件中。我尝试运行命令 pythonw myscript.py ,仍然没有任何结果,并且还尝试将 pythonw.exe 设置为主程序来打开 .pyw 文件,所以我双击脚本来运行它,但没有任何启动。我知道它在后台运行,没有命令提示符,这就是我想要的,但程序本身没有运行。我也检查了我的环境变量路径,这不是问题,因为 pythonw.exe python.exe 位于同一文件夹中,并且 python.exe 从命令提示符运行没有问题。

我还能尝试什么?


当然,我会帮解决 Pythonw 问题。以下是可能导致 Pythonw 脚本无法运行且不显示错误消息的常见原因,以及如何对其进行故障排除的方法:

1. 无控制台窗口的未处理异常:

  • 问题: pythonw 设计为在没有控制台窗口的情况下运行。如果脚本中存在任何未处理的异常,它将在不显示任何错误消息的情况下静默失败。
  • 解决方案:
    • 实现强大的错误处理: 将代码(尤其是容易出错的部分)包装在 try...except 块中,以捕获并记录所有异常。这样,即使在没有控制台窗口的情况下,也可以了解到出了什么问题。
    • 将错误记录到文件: 如所述,将错误重定向到文件可以帮助调试。已经在这样做,但确保定期检查日志文件以查找错误消息。

2. 导入问题:

  • 问题: 脚本在导入模块时可能存在问题,尤其是当它们依赖于特定路径或配置时。
  • 解决方案:
    • 验证导入: 仔细检查脚本中使用的所有 import 语句。确保这些模块已安装并且路径设置正确。
    • 使用绝对导入: 尽可能使用绝对导入,因为它们在脚本从不同位置运行时更加可靠。

3. 文件关联问题:

  • 问题: 即使之前设置了它,Windows 中的 .pyw 文件关联有时也可能会被重置,从而导致脚本无法使用 pythonw 正确启动。
  • 解决方案:
    • 重置文件关联: 右键单击 .pyw 文件,选择“打开方式”>“选择其他应用”。选中“始终使用此应用打开 .pyw 文件”。浏览并选择 pythonw.exe (通常位于 C:\Python36 或类似路径下)。

4. 无限循环或阻塞代码:

  • 问题: 如果的脚本进入无限循环或被长时间运行的任务阻塞而没有屈服于事件循环,它可能会显得像被卡住了一样,并且不会产生任何输出。
  • 解决方案:
    • 检查循环和阻塞操作: 查看的代码中是否有任何循环或操作可能会无限期阻塞。在长时间运行的任务后添加机制来产生事件循环(例如,使用 time.sleep(0) )或将其分解成更小的块。

调试步骤:

  1. 从一个简单的脚本开始: 创建一个只包含以下内容的简单 test.pyw 文件: python import time with open('test.txt', 'w') as f: f.write('Script started\n') time.sleep(5) f.write('Script finished\n') 双击它运行。如果此脚本成功创建了 test.txt 文件并写入消息,则说明的基本 pythonw 设置正常工作。

  2. 逐步添加代码: 将代码片段从原始脚本逐个添加到 test.pyw ,并在每次添加后进行测试。这将帮助查明是哪一部分代码导致了问题。

  3. 使用调试器: 如果可能,请使用像 Visual Studio Code 或 Thonny 这样的 Python IDE。这些 IDE 允许设置断点并逐步执行代码,这有助于确定问题的确切位置,即使在使用 pythonw 时也是如此。

如果尝试了所有这些步骤并且仍然无法让的脚本正常工作,请在的问题中提供以下信息,以便我提供更多帮助:

  • 的脚本的简化版本: 分享足以重现该问题的最小版本。
  • log.txt err.txt 文件中看到的确切错误消息(如果有)。
  • 的 Python 版本和操作系统版本。

祝好运,如果有任何其他问题,请告诉我!

标签:python
From: 64408100

相关文章

  • 如何使用Python和Selenium模拟产品购买以获取库存信息
    我正在开发一项网络抓取服务,主要针对时尚行业。我的目标是提供有关产品的全面数据,包括库存水平。为了实现这一目标,我需要模拟购买以确定每种尺寸的产品的最大可用数量。我一直在使用Python和Selenium进行网络抓取部分,但在准确模拟购买方面面临着挑战检索股票信息的过程。......
  • 连接Python套接字的问题
    当我写“关闭”时,我试图让我的电报机器人关闭计算机。我不想将机器人连接到网站上的托管。我选择我的手机(AndroidRedmiNote10)作为托管。我在上面安装了Termux和Pydroid。我写了两个文件:main到我的电脑,client到我的手机。通过在计算机上运行这两个文件,一切正常。但是,当我在......
  • 如何修复导入 Numexpr Python 时的错误
    在Windows10Python3.7.9(IDLE)上,我成功安装了“pipinstallnumexpr”,但在“importnumexprasne”时出现错误:Traceback(最近一次调用):文件“<pyshell#21>”,第267行,位于将numexpr导入为ne文件“C:\Python379\lib\site-packages\numexpr_init_.py”......
  • 让 cpython 优化恒定条件
    我正在用Python编写需要尽可能高效运行的代码,但有时我需要深入挖掘调试语句。不要注释这些输入或输出(或者使用外部预处理器来处理代码,就像这里建议的那样Python相当于#ifdefDEBUG或这里如何在python中实现“#ifdef”?|||)我想在模块的开头定义一个变量......
  • 如何使用 for 循环在 python jupyter 笔记本中创建动态图?
    我正在学习本课关于用Python求解热方程。该课程指出,在求解热方程后,我们可以通过在循环中简单地调用pyplot.plot()来可视化解的动画图,其中下面的代码将动态绘制每次每个点的温度,从而得到一个动画情节(课程帖子中提供了动画情节的示例)。importnumpyfrommatplotlibi......
  • Python:动态爱心代码
    importrandomfrommathimportsin,cos,pi,logfromtkinterimport*CANVAS_WIDTH=640CANVAS_HEIGHT=480CANVAS_CENTER_X=CANVAS_WIDTH/2CANVAS_CENTER_Y=CANVAS_HEIGHT/2IMAGE_ENLARGE=11HEART_COLOR="#FF99CC"defcenter_......
  • 如何在 PYTHON 中查找输入数字的千位、百位、十位和个位中的数字?例如:256 有 6 个一、5
    num=int(input("Pleasegivemeanumber:"))print(num)thou=int((num//1000))print(thou)hun=int((num//100))print(hun)ten=int((num//10))print(ten)one=int((num//1))print(one)我尝试过这个,但它不起作用,我被困住了。代码几乎是正确的,但需......
  • ModuleNotFoundError:没有名为“pyaes”的模块 python 虚拟机
    在此处输入图像描述当我在启动python项目的虚拟机上构建某个工具时,几秒钟后会出现此消息。我已经尝试重新安装pyaes但无济于事。谁能帮我?非常感谢我已经尝试重新安装pyaes但无济于事,我搜索了tepyaes模块的十个路径,但我没有找到它,而我在另一台虚拟机上完成了......
  • 如何通过 mutagen (Python) 为 mp3 文件中的情绪添加价值?
    我找不到通过mutagen(Python库)将情绪写入mp3文件的方法初始化:frommutagen.mp3importMP3frommutagen.id3importID3,TIT2,TALB,TPE1,TPE2,TCON,TPUB,TENC,TIT3,APIC,WOAR,PRIVaudio=MP3(mp3_file,ID3=ID3)我可以使用audio['TIT3']=TIT3(......
  • 使用 Python 操作 Splunk
    使用Python操作Splunk目录使用Python操作Splunk1参考文档2安装PythonSplunk-SDK3连接splunk4配置查询5参考1参考文档SplunkGithub地址:GitHub-splunk/splunk-sdk-python:SplunkSoftwareDevelopmentKitforPythonSplunk开发者文档地址:Pythontools|......