该%%cython命令非常方便创建cython函数而无需构建和使用包.该命令有几个选项,但我找不到在那里指定编译时环境变量的方法.
我想要相当于:
from Cython.Distutils.extension import Extension
ext = Extension(...
                cython_compile_time_env={'MYVAR': 10},
                ...)
为%%cython命令.
我已经尝试过:
%%cython -cython_compile_time_env={'MYVAR':10}
IF MYVAR:
    def func():
        return 1
ELSE:
    def func():
        return 2
但是这引发了一个异常:
Error compiling Cython file:
------------------------------------------------------------
...
IF MYVAR:
       ^
------------------------------------------------------------
...\.ipython\cython\_cython_magic_28df41ea67fec254f0be4fc74f7a6a54.pyx:2:8: Compile-time name 'MYVAR' not defined
和
%%cython --cython_compile_time_env={'MYVAR':10}
IF MYVAR:
    def func():
        return 1
ELSE:
    def func():
        return 2
投
UsageError:无法识别的参数: - cython_compile_time_env = {'MYVAR':10}
我想从命令行运行IPython.但是,我在第一行遇到语法错误,使用magic函数导入pylab会%pylab在%上给出语法错误.我正在使用的命令很简单ipython -i script.py.
任何想法如何解决这个问题?
我想用一台带有NVIDIA Optimus(bumblebee)的Linux笔记本电脑上的IPython笔记本运行pycuda.通常,我可以通过键入来运行python脚本optirun python my_pycuda_script.py 
但是,如果我开始optirun ipython notebook然后打开一个笔记本,一个新的内核启动,我不能再运行pycuda了.我发现如果我用调用optirun new_location_of_python它的shell脚本替换我的python可执行文件就可以了 - 但这是一个非常丑陋的黑客.有一个更好的方法吗?也许有一个神奇的功能,所以只有相关的笔记本电脑是用optirun启动的?  
谢谢你的帮助!
我知道的%reset和%reset_selective命令放在IPython。但是,假设您有许多变量,并且您想清除除x, y,之外的所有变量z。有没有一种简洁的方法来实现这一点?说一个%reset_all_except x,y,z?
我正在通过使用另一个(父)笔记本中的魔法来运行 IPython 笔记本%run。
如果调用 using ,我想隐藏子笔记本中的一些输出%run,并认为我可以通过测试来做到这一点if __name__ == '__main__'
IPython 文档指出,当%run -n使用 switch 时:
__name__不是设置为__main__,而是设置为不带扩展名的运行文件的名称(就像 python 在导入时所做的那样)。这允许运行脚本并重新加载其中的定义,而无需调用受if __name__ == "__main__"子句保护的代码。
然而,它似乎对我不起作用。我试过这个:
在sub_notebook.ipynb:
print(__name__)
在parent_notebook.ipynb:
%run -n sub_notebook.ipynb
这会打印__main__,但文档说它应该打印sub_notebook。
请让我知道如何根据代码sub_notebook.ipynb是单独运行还是使用来选择性地运行代码%run?
我正在运行 IPython 版本 6.1.0
我%%time在 Jupyter-notebook 中使用来测量我的 Python 代码的运行时间。问题是它只Wall time在Windows上打印,但在Ubuntu上运行良好。
是否也可以CPU time在Windows上获取?
我使用的是 Windows 10,Python 3.6 Anaconda 版本。
我是一个python和Ipython初学者.这可能是一个微不足道的问题.它可能与其他问题重复.但是我不知道应该搜索哪些关键词.
我已经知道如何与shell交互.
例如:
In [1]: a = !ls
In [2]: a
        ...same ls result as shell...
In [3]: type(a)
Out[3]: IPython.utils.text.SList
但是,如何与Ipython魔术互动?
例如
In [1]: a = %history -t 
        ...Ipython result...
In [2]: a
In [3]: type(a)
Out[3]: NoneType
我想默认修改IPython如何处理导入错误.当我在IPython shell中对原型进行原型化时,我通常会忘记首先导入os,re或者我需要的任何内容.前几个陈述经常遵循这种模式:
In [1]: os.path.exists("~/myfile.txt")
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-1-0ffb6014a804> in <module>()
----> 1 os.path.exists("~/myfile.txt")
NameError: name 'os' is not defined
In [2]: import os
In [3]: os.path.exists("~/myfile.txt")
Out[3]: False
当然,这是我的错,因为有坏习惯,当然,在一个有意义的脚本或真正的程序中,但在shell中我宁愿IPython遵循DWIM原则,至少尝试导入我想要使用的东西.
In [1]: os.path.exists("~/myfile.txt")
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-1-0ffb6014a804> in <module>()
----> 1 os.path.exists("~/myfile.txt")
NameError: name 'os' is not defined
Catching this for you and trying to import "os" … success!
Retrying …
---------------------------------------------------------------------------
Out[1]: False
如果使用vanilla IPython无法做到这一点,我需要做些什么来使其工作?是 …
我正在尝试测量代码不同部分的执行时间,每部分几行。我使用 %%timeit 执行此操作,但是在执行单元格后,我发现为单元格中的变量计算的值不会保留在下一个单元格的内存中,如下例所示。
为什么会出现这种情况?有没有办法保留这些值,以便我可以在程序的其余部分使用它们?
In [1]: %%timeit
...: dog='dog'
100000000 loops, best of 3: 16.2 ns per loop
In [2]: print (dog)
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-16-c61686862278> in <module>()
----> 1 print (dog)
NameError: name 'dog' is not defined
这对我来说听起来似乎是一个微不足道的问题(或者我期望的默认行为),但我无法在网上找到任何信息,所以我希望有人可以提供帮助。
如何在IPython 魔术命令的末尾添加注释?
例如,尝试使用%cd:
%cd "dir"  # comment
我想更改为目录,dir但我得到:
Run Code Online (Sandbox Code Playgroud)[Errno 2] No such file or directory: 'dir # comment'