我正在尝试在 Python Tkinter 中使用 os.system 触发一个新窗口,但它不起作用
Posted
技术标签:
【中文标题】我正在尝试在 Python Tkinter 中使用 os.system 触发一个新窗口,但它不起作用【英文标题】:I am trying to trigger a new window using os.system in Python Tkinter but it's not working 【发布时间】:2022-01-13 07:20:16 【问题描述】:def hmsbookings() :
os.system('python hmsbookings.py')
root.after(60000, hmsbookings)
我尝试了这两条线,但由于某些原因,它没有成功。 它显示错误:
/System/.../MacOS/Python: can't open file 'hmsbookings.py': [Errno 2] No such file or directory.
【问题讨论】:
hmsbookings.py
文件位于何处?是在提到的路径/System/.../MacOS/Python
下吗?
不,它位于我的工作区文件夹中。不在 Python 文件夹中。
这是错误消息试图告诉您的内容。它在 python 文件夹中搜索。启动新脚本时使用绝对路径。
怎么做?
【参考方案1】:
执行路径可能与文件所在的位置不同。
在您的情况下,执行在 /System/.../MacOS/Python
但是您的文件在其他地方。如果您使用文件的完整路径,则可以解决此不当行为。
让我假设您的文件位于您的桌面中。那么这是使用绝对路径的修改代码。
import os
def hmsbookings() :
os.system('python os.path.expanduser("~/Desktop/hmsbookings.py")')
root.after(60000, hmsbookings)
我对macOS不熟悉,我基于this question。如果你需要更多关于mac上绝对路径的信息see this question。
【讨论】:
谢谢!顺便说一句,我试过这个方法def hmsbookings() : my_dir = os.path.dirname(sys.argv[0]) os.system('%s %s %s' % (sys.executable, os.path.join(my_dir, 'hmsbookings.py'), os.path.join(my_dir, 'Argument')))
它对我有用。以上是关于我正在尝试在 Python Tkinter 中使用 os.system 触发一个新窗口,但它不起作用的主要内容,如果未能解决你的问题,请参考以下文章