标签: ipython-magic

Cython ipython魔术与编译时环境变量

%%cython命令非常方便创建cython函数而无需构建和使用包.该命令有几个选项,但我找不到在那里指定编译时环境变量的方法.

我想要相当于:

from Cython.Distutils.extension import Extension
ext = Extension(...
                cython_compile_time_env={'MYVAR': 10},
                ...)
Run Code Online (Sandbox Code Playgroud)

%%cython命令.

我已经尝试过:

%%cython -cython_compile_time_env={'MYVAR':10}

IF MYVAR:
    def func():
        return 1
ELSE:
    def func():
        return 2
Run Code Online (Sandbox Code Playgroud)

但是这引发了一个异常:

Error compiling Cython file:
------------------------------------------------------------
...

IF MYVAR:
       ^
------------------------------------------------------------

...\.ipython\cython\_cython_magic_28df41ea67fec254f0be4fc74f7a6a54.pyx:2:8: Compile-time name 'MYVAR' not defined
Run Code Online (Sandbox Code Playgroud)

%%cython --cython_compile_time_env={'MYVAR':10}

IF MYVAR:
    def func():
        return 1
ELSE:
    def func():
        return 2
Run Code Online (Sandbox Code Playgroud)

UsageError:无法识别的参数: - cython_compile_time_env = {'MYVAR':10}

python ipython cython ipython-magic

8
推荐指数
1
解决办法
242
查看次数

如何从命令行运行IPython脚本 - 魔术函数的语法错误,%

我想从命令行运行IPython.但是,我在第一行遇到语法错误,使用magic函数导入pylab会%pylab在%上给出语法错误.我正在使用的命令很简单ipython -i script.py.

任何想法如何解决这个问题?

ipython ipython-magic

7
推荐指数
1
解决办法
6791
查看次数

带有optirun的IPython笔记本

我想用一台带有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启动的?

谢谢你的帮助!

python ipython-magic jupyter-notebook

7
推荐指数
1
解决办法
723
查看次数

清除除 IPython 中的一些特定变量外的所有内容

我知道的%reset%reset_selective命令放在IPython。但是,假设您有许多变量,并且您想清除除x, y,之外的所有变量z。有没有一种简洁的方法来实现这一点?说一个%reset_all_except x,y,z

python ipython ipython-magic

7
推荐指数
1
解决办法
2038
查看次数

IPython %run magic -n 开关不起作用

我正在通过使用另一个(父)笔记本中的魔法来运行 IPython 笔记本%run

如果调用 using ,我想隐藏子笔记本中的一些输出%run,并认为我可以通过测试来做到这一点if __name__ == '__main__'

IPython 文档指出,当%run -n使用 switch 时:

__name__不是设置为__main__,而是设置为不带扩展名的运行文件的名称(就像 python 在导入时所做的那样)。这允许运行脚本并重新加载其中的定义,而无需调用受if __name__ == "__main__"子句保护的代码。

然而,它似乎对我不起作用。我试过这个:

sub_notebook.ipynb

print(__name__)
Run Code Online (Sandbox Code Playgroud)

parent_notebook.ipynb

%run -n sub_notebook.ipynb
Run Code Online (Sandbox Code Playgroud)

这会打印__main__,但文档说它应该打印sub_notebook

请让我知道如何根据代码sub_notebook.ipynb是单独运行还是使用来选择性地运行代码%run

我正在运行 IPython 版本 6.1.0

python ipython ipython-magic jupyter-notebook

7
推荐指数
1
解决办法
1020
查看次数

%%time 在 Jupyter 笔记本中的 Windows 上不返回 CPU 时间

%%time在 Jupyter-notebook 中使用来测量我的 Python 代码的运行时间。问题是它只Wall timeWindows上打印,但在Ubuntu上运行良好。

是否也可以CPU timeWindows上获取?

我使用的是 Windows 10,Python 3.6 Anaconda 版本。

ipython ipython-magic jupyter-notebook

7
推荐指数
1
解决办法
1840
查看次数

如何将ipython魔术输出存储到变量中

我是一个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
Run Code Online (Sandbox Code Playgroud)

但是,如何与Ipython魔术互动?

例如

In [1]: a = %history -t 
        ...Ipython result...
In [2]: a
In [3]: type(a)
Out[3]: NoneType
Run Code Online (Sandbox Code Playgroud)

python ipython ipython-magic

6
推荐指数
1
解决办法
2704
查看次数

让IPython导入我的意思

我想默认修改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
Run Code Online (Sandbox Code Playgroud)

当然,这是我的错,因为有坏习惯,当然,在一个有意义的脚本或真正的程序中,但在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
Run Code Online (Sandbox Code Playgroud)

如果使用vanilla IPython无法做到这一点,我需要做些什么来使其工作?是 …

python ipython ipython-magic

6
推荐指数
1
解决办法
376
查看次数

python 中的计时与 %timeit %%timeit 如何保留/保留值以供以后使用

我正在尝试测量代码不同部分的执行时间,每部分几行。我使用 %%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
Run Code Online (Sandbox Code Playgroud)

这对我来说听起来似乎是一个微不足道的问题(或者我期望的默认行为),但我无法在网上找到任何信息,所以我希望有人可以提供帮助。

python ipython ipython-magic jupyter-notebook

6
推荐指数
0
解决办法
1840
查看次数

如何在 IPython 魔术命令后添加评论

如何在IPython 魔术命令的末尾添加注释?

例如,尝试使用%cd

%cd "dir"  # comment
Run Code Online (Sandbox Code Playgroud)

我想更改为目录,dir但我得到:

[Errno 2] No such file or directory: 'dir # comment'
Run Code Online (Sandbox Code Playgroud)

ipython ipython-magic jupyter-notebook

6
推荐指数
1
解决办法
220
查看次数

标签 统计

ipython-magic ×10

ipython ×9

python ×7

jupyter-notebook ×5

cython ×1