【问题标题】:Run executable files without the exclamation mark in IPython?在IPython中运行没有感叹号的可执行文件?
【发布时间】:2019-11-27 19:02:19
【问题描述】:

用户可以通过在 IPython 中的 shell 命令前加上感叹号 (!) 来运行任何 shell 命令。或者用户可以运行魔术%rehashx,以便可以直接使用搜索路径上的任何可执行文件。但是,有一种令人讨厌的情况。如果你有一个不在搜索路径上的可执行文件,比如说,当前直接工作的有一个可执行的 Python 脚本cmder.py(它不在搜索路径上),你仍然需要!./cmder.py!/absolute/path/to/cmder.py运行它。我想知道有没有办法让 IPython 将 ./cmder.py/absolute/path/to/cmder.py 识别为 shell 命令?

【问题讨论】:

  • 我通常对这样的魔法持怀疑态度。我宁愿反其道而行之,习惯于将! 放在all shell 命令的前面,包括我路径中的命令。如果您尝试运行恰好与 Python 对象名称匹配的命令,%rehashx 行为可能会在稍后再次咬您。另一方面,您建议的行为是明确的,因为命令始终以路径规范开头。我猜您必须提交功能请求或自己将其添加到 Jupyter 并提交拉取请求。

标签: shell ipython executable


【解决方案1】:

从 shell 运行任何 python 脚本如下:

python /absolute/path/to/cmder.py

例子:

bash-3.2$ echo "print('Hello User...')" > shell_python.py
bash-3.2$ cat shell_python.py
print('Hello User...')
bash-3.2$ python shell_python.py
Hello User...
bash-3.2$ 

所以要执行相同的操作,请使用

!python /absolute/path/to/cmder.py

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-07-28
    • 2012-11-01
    • 2012-01-27
    • 1970-01-01
    • 2020-05-30
    • 2023-03-30
    相关资源
    最近更新 更多