# ipython-language-magic **Repository Path**: konghy/ipython-language-magic ## Basic Information - **Project Name**: ipython-language-magic - **Description**: IPython 编程语言默认方法,用于在 IPython 中快速运行各语言代码。 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-04-21 - **Last Updated**: 2026-03-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # IPython Language Magic 在 IPython / Jupyter Notebook 中直接编写和执行多种编程语言代码的魔法扩展。 与独立的语言 Kernel(如 xeus-cling、evcxr_jupyter)不同,本扩展作为 IPython 魔法命令运行,**无需切换 Kernel**,可以在同一个会话中混合使用 Python 和其他语言。 ## 特性 - **轻量**:单文件模块,作为 IPython 扩展加载即用 - **自动包裹**:C/C++/Rust 代码片段自动生成 `main()` 函数 - **编译参数**:支持向编译器传递自定义参数(如 `-Wall -O2`) - **超时保护**:自动终止长时间运行的进程,默认 30 秒 - **环境检测**:加载时自动检测并报告可用的编译器和解释器 ## 支持的语言 | 魔法命令 | 语言 | 所需工具 | |----------|------|----------| | `%lua` / `%%lua` | Lua | `lua` | | `%%c` / `%%cc` | C | `gcc` | | `%%cpp` | C++ | `g++` | | `%%clang` | C/C++ | `clang` | | `%%rust` | Rust | `rustc` | ## 安装 ```bash pip install . ``` ## 使用 ### 加载扩展 ```python %load_ext ipython_language_magic ``` 加载后会显示当前可用的语言工具: ``` Language magic 已加载,可用语言:Lua, C (gcc), C++ (g++), Rust ``` ### Lua ```python # 行魔法 —— 单行代码 %lua print("Hello from Lua") # 单元格魔法 —— 多行代码 %%lua for i = 1, 5 do print(i) end ``` ### C 代码片段会自动包裹在 `main()` 函数中: ```python %%c printf("Hello from C\n") ``` 也可以编写完整程序: ```python %%c #include int main(void) { for (int i = 0; i < 5; i++) { printf("%d\n", i); } return 0; } ``` 传递编译参数: ```python %%c -Wall -O2 printf("Optimized C\n") ``` ### C++ ```python %%cpp std::cout << "Hello from C++" << std::endl; ``` ### Rust ```python %%rust let v = vec![1, 2, 3]; println!("{:?}", v); ``` ## 许可证 [MIT](LICENSE) *Copyright (c) Huoty, 2023*