Python os.execv权限错误Errno13权限被拒绝

Python os.execv权限错误Errno13权限被拒绝,python,permission-denied,execv,Python,Permission Denied,Execv,我试图递归运行同一个程序,但参数不同。我是这样做的: os.execv(file_dir, ['python'] + [sys.argv[0]] + [str(last_line)]) quit() 这是我从主函数调用的函数的一个片段。 我尝试通过执行chmod u+x program.py来确保该文件是可执行的,但没有成功。问题可能是什么?os.execv希望将可执行文件的完整路径作为第一个参数,而不是“文件目录” 试试这个:os.execv(sys.executable,['python'

我试图递归运行同一个程序,但参数不同。我是这样做的:

os.execv(file_dir, ['python'] + [sys.argv[0]] + [str(last_line)])
quit()
这是我从主函数调用的函数的一个片段。
我尝试通过执行
chmod u+x program.py
来确保该文件是可执行的,但没有成功。问题可能是什么?

os.execv
希望将可执行文件的完整路径作为第一个参数,而不是“文件目录”

试试这个:
os.execv(sys.executable,['python']+[sys.argv[0]]+[str(最后一行)])

示例
yes
通过调用相同的可执行文件实现:

导入系统 导入操作系统 打印('y') execv(sys.executable,['python']+[sys.argv[0]]
虽然您可能会收到解释如何操作的响应,但这似乎是一种反模式。编写一个包含这些参数的函数并将其作为函数调用是一种更好的方法,如果我这样做了,我将无法打开文件“program.py”:[Errno 2]没有这样的文件或目录,这可能是因为在最初的调用中,argv[0]是一个相对路径。试试
os.path.abspath(sys.argv[0])
BTW我试着打印出sys.executable是什么,它在usr/bin/python3中,而包含我要执行的文件的项目在我的桌面上的一个文件夹中。非常感谢你。现在我对递归子程序中的import语句有另一个问题,但我将发布另一个问题