提问人:blipblop 提问时间:1/2/2019 最后编辑:Jason Allerblipblop 更新时间:7/10/2020 访问量:38
在 IPython 中检测用于启动 IPython 的 CMD/终端调用
Detect within IPython which CMD/Terminal call was used to start IPython
问:
假设我在 Windows 10 CMD 中使用以下命令启动 IPython:
"C:\MyFolder\ipython.exe" -i --matplotlib=qt5 --InteractiveShellApp.exec_lines="['import numpy as np']"
在初始化的 IPython 控制台中,有没有办法让我准确找到用于初始化 IPython 控制台的命令(如上所述)?
如果没有,是否至少有一种方法可以检索该部分,即当前运行的 ipython 文件的确切路径?"C:\MyFolder\ipython.exe"
答:
2赞
Jean-François Fabre
1/2/2019
#1
您请求的信息(传递给 C 程序的原始程序参数 - 比如 - 传递给 C 程序 )在 python 解释器级别不可用(更完整 - 但部分,因为它不涉及 python 命令和开关 - 解释在如何找到提供给 Python 的确切 CLI 命令中提供?main(int argc, char *argv)
)
sys.argv
提供要传递给脚本的参数,包括脚本本身,但不提供 Python 命令行开关。sys.argv[0]
不过,您可以获得的一件事是已启动的可执行文件:sys.executable
所以你能做的最接近的是:
args = [sys.executable] + sys.argv
评论
0赞
blipblop
1/2/2019
谢谢,您的回答 - 以及您指向的链接 - 帮助我解决了我的问题。但是,似乎总是给出当前环境的路径,无论控制台是通过 python、ipython 还是其他方式初始化的。相反,可以简单地使用 ,如果用于初始化当前控制台,则给出 python 路径,但如果使用,则给出 ipython 路径sys.executable
python
sys.argv[0]
python.exe
ipython.exe
0赞
blipblop
1/2/2019
另外,请注意,如果真的想在那里使用,那么应该这样做。sys.executable
args = [sys.executable] + sys.argv[1:]
0赞
Jean-François Fabre
1/2/2019
我承认,我的答案不够关注 ipython。随意提出编辑建议以改进它并使其更适合 ipython。
评论
sys.executable