情境:我的Python脚本有一行代码,可以将自己复制到另一个目录。
该脚本具有将自己复制到其他位置的能力,这样可以在多个目录中同时运行该脚本。
问题:脚本编译成EXE文件并运行,但是出现以下错误提示:
如您所见,EXE正在寻找未编译版本的.py文件(即自身版本)。
问题:是否有另一个Python命令可以让可执行文件找到自身而不是.py版本?
额外信息:我本来想尝试将.py替换为.exe并查看是否有效,但如果更改可执行文件的名称,则该程序将无法运行。
该脚本具有将自己复制到其他位置的能力,这样可以在多个目录中同时运行该脚本。
shutil.copyfile(os.path.abspath(__file__), newPath)
问题:脚本编译成EXE文件并运行,但是出现以下错误提示:
FileNotFoundError: No such file or Directory: "C:\Path\To\EXE\script.py"
如您所见,EXE正在寻找未编译版本的.py文件(即自身版本)。
问题:是否有另一个Python命令可以让可执行文件找到自身而不是.py版本?
额外信息:我本来想尝试将.py替换为.exe并查看是否有效,但如果更改可执行文件的名称,则该程序将无法运行。
C:\ > script.exe
#Works as expected
C:\ > ren script.exe program.exe
C:\ > program.exe
FileNotFoundError: No such file or directory: "C:\script.py"
sys.executable
只适用于 .exe 文件,但是当我像这样运行脚本python script.py
并且将脚本构建为 exe 并使用 cmd 运行时,sys.argv[0]
有效。这是我现在引用事物的方式:os.path.join(os.path.dirname(os.path.abspath(sys.argv[0])), 'Resources')
。 - ZiyadCodes