我想要做的是使用 python 命令行解释器启动一个终端会话,然后使用该解释器运行 python 文件,该 python 文件可以位于任何地方。
我的意思是我有一个 pythondemo.py
文件/home/one/two/
#demo.py
a=10
print("something")
这样当终端打开时我会看到消息,something
后面跟着控制台提示。
something
>>>
我的方法:
gnome-terminal --python -i ~/home/one/two/demo.py
这给了我以下结果
python: can't open file '~/Desktop/pydemo/demo.py': [Errno 2] No such file or directory
但是,当我从终端窗口(未在与文件相同的目录中打开)运行相同的命令时,demo.py
它可以正常工作。
有人可以解释一下这里发生了什么吗?如果可能的话,请建议一种实现我上面提到的方法。
答案1
您没有说明如何启动该命令。如果从命令行运行,
gnome-terminal -- python -i ~/demo.py
则可以,因为在将参数传递给 gnome-terminal 之前,shell 会将 ~ 更改为您的 home。但是,在您的情况下,错误消息指出~/... : not found
:没有 shell 来解释 ~,因此它保持原样,实际上,在命令碰巧启动的目录中,没有目录的名称是唯一的字符 ~。
明确使用 shell 来解释 ~ :
gnome-terminal -- sh -c 'exec python -i ~/demo.py'
或者自己动手并提供完整路径名:
gnome-terminal -- python -i /home/me/demo.py