scpy2 icon indicating copy to clipboard operation
scpy2 copied to clipboard

请问在Linux中如何启用自定义的魔术命令?

Open quietcoolwu opened this issue 8 years ago • 7 comments

请问每次都要把utils目录拷贝到ipynb的运行目录下并手动导入才可以吗?有什么其他办法可以实现呢?

quietcoolwu avatar May 26 '16 19:05 quietcoolwu

和Windows下差不多,在PYTHONPATH中添加scpy2目录的上层路径,例如如果scpy2在~/pythonlib/scpy2中,则把~/pythonlib添加进PYTHONPATH变量。然后就可以在.ipython/profile_xxx/startup下添加一个启动代码:

from scpy2.utils.nbmagics import install_magics
install_magics()
del install_magics

不过本书代码只在Windows下调试过,Linux下可能会有些问题,如果出问题了,请继续发issue。

ruoyu0088 avatar May 26 '16 22:05 ruoyu0088

@ruoyu0088 按您说的做,貌似有无法导入_winreg的问题,看来需要改变一些代码,不知道作者有扩展迁移代码到Linux的打算吗?虽然也不影响本书的主干内容貌似……但是书里提供的自定义魔法命令肯定不能直接跑起来了。

quietcoolwu avatar May 29 '16 08:05 quietcoolwu

我看了一下代码,_winreg是用来读入编译器版本号的,linux下不需要这个。把:

scpy2/utils/__init__.py中的

from .select_compiler import show_compiler, set_msvc_version, set_compiler

改为无用的函数:

def show_compiler():
    pass

def set_msvc_version(_):
    pass

def set_compiler(_):
    pass

ruoyu0088 avatar May 29 '16 10:05 ruoyu0088

@ruoyu0088 谢谢您的帮助,但是现在的anaconda套件里默认使用jupyter代替了ipython notebook,那么加载自定义魔术方法的函数放在~/.ipython/profile_default/startup的启动脚本就无效了, 不知如何解决?

quietcoolwu avatar Jun 22 '16 13:06 quietcoolwu

在ipython中运行如下命令:

import IPython
IPython.paths.locate_profile()

看看你的profile文件夹是否改变了。我现在用的也是jupyter notebook,magics.py放到startup中没有问题的。

ruoyu0088 avatar Jun 22 '16 22:06 ruoyu0088

我想请问下,下载了scpy2的包放在site-packages文件夹下了,运行第二版书上301页分析DataFrame内存结构代码(from scpy2.common import GraphvizDataFrame)时出错说:No module named tvtk.pipeline.browser

LinShouWu avatar Dec 08 '17 04:12 LinShouWu

@LinShouWu 你需要tvtk库,或者把scpy2/__init__.py的第一行注释掉。

ruoyu0088 avatar Dec 08 '17 10:12 ruoyu0088