当ii未被使用时,会出现“NameError: name 'execv' is not defined”
我正在编写一个脚本,用来关闭我的多线程应用并重新启动它。我点击一个按钮来执行这个操作,但出现了一个错误
NameError: 名称 'execv' 未定义
我没有,也已经检查过,在我的脚本中没有使用这个词或这个函数。我确实调用了导入的os模块中的 execl 函数。
错误的详细信息如下:
文件 "/var/containers/Bundle/Application/ECA56045-7D3B-4FCC-B22F-C1E082EFDCD9/Pythonista3.app/Frameworks/Py3Kit.framework/pylib/os.py", 第543行,在execl
execv(file, args)
错误发生在以下函数中:
def restart_app():
"""Restarts the Pythonista script."""
python = sys.executable
os.execl(python, python, *sys.argv)
我可能错了,但这看起来像是在遇到 'os.execl' function in os code at line 543 时发生了错误
有没有办法解决这个问题?
解决方案
你不能在Pythonista中使用任何的 os.exec* 函数,因为Pythonista不支持它:你不能启动新进程(类似fork),也不能在当前进程之上执行新的进程(这会摧毁正在运行的应用!)。
你没有解释你打算用os.execl做什么,但如果你是想启动一个应用,可以通过URL或快捷指令(Shortcuts)来实现。
请注意,像StaSH这样的Pythonista应用其实是通过调用用Python编写的函数来模拟运行中的进程;它们提供了拥有Shell的错觉,但实际上从未执行过新的进程。
站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。