含pyautogui的.pyx脚本在Spyder/CMD可运行,批处理文件无法执行
解决.pyx脚本通过批处理运行时的文件找不到问题
你遇到的问题核心是路径中的非ASCII特殊字符(比如你路径里的á)和批处理文件的编码不兼容——Spyder和CMD直接运行时,编码环境能正确识别这些带重音的字符,但批处理默认用ANSI编码,解析不了这些字符就会让py.exe收到乱码路径,最终提示找不到那个「
给你几个可行的解决办法,按从易到难的顺序来:
最简单的方案:迁移脚本到无特殊字符的路径
把proba.pyx和urge.pyx移动到不含非ASCII字符的目录下,比如E:\PythonProjects\gyak\,然后修改批处理文件里的路径为:@py.exe E:\PythonProjects\gyak\proba.pyx %*这种方法完全避开了编码问题,最省心。
修改批处理文件的编码为UTF-8(带BOM)
用记事本打开你的批处理文件,点击「文件」→「另存为」,在编码下拉框里选择「UTF-8」(注意要选带BOM的版本,部分编辑器会标注为「UTF-8 with BOM」),然后覆盖原文件。这样批处理就能正确解析路径里的特殊字符了。先切换到脚本目录再运行
把批处理的内容改成这样,先切换到脚本所在的文件夹,再执行脚本,避免直接传递带特殊字符的长路径:@echo off cd /d "E:\Anyagok\Programozas\Python\projekts\gyak" py.exe proba.pyx %*这里的
cd /d是为了同时切换盘符和目录,确保能正确进入目标文件夹。指定Python版本运行(备选)
若你的电脑存在多个Python版本,可能导致py.exe调用出错,试试在批处理里明确指定版本,比如你的Python是3.6,就写成:@py.exe -3.6 E:\Anyagok\Programozas\Python\projekts\gyak\proba.pyx %*不过这个方案更适合版本冲突场景,你的问题大概率还是编码问题,可以作为备选尝试。
你可以先试试前两个方案,应该能快速解决问题。
内容的提问来源于stack exchange,提问作者Chris
相关产品推荐
相关产品推荐

