在jupyter笔记本中使用bash_profile别名

时间:2017-03-29 20:42:08

标签: bash jupyter-notebook jupyter .bash-profile

我的Jupyter笔记本看起来像我public function index(Request $request){ $result = shopsales::get()->number($request->storeNumber)->all(); return view('shopsales',compact('result')); } 中的select Reference, isnull(convert(varchar(10),[Approve],103),'') [Approve], isnull(convert(varchar(10),[In Progress],103),'') [In Progress], isnull(convert(varchar(10),[Close],103),'') [Close] from ( select Reference, Status, Date from YourTableName ) d pivot (min([Date]) for Status in ([Approve],[In Progress],[Close])) p 所有内容,但我export没有。

我认为.bash_profile使用alias,因此可以理解bash配置文件中的别名不会移植,但!魔法也不会拿起我写过的别名。

有没有办法通过bin/sh(理想情况下)或至少使用%%bash使我的bash配置文件中的别名可用?

1 个答案:

答案 0 :(得分:2)

这似乎有效(python3,我在jupyter issue中找到的黑客修改过的)

test_img = np.zeros(shape=(height,width,3)).astype('uint8')
cv2.imshow('image',test_img)
cv2.moveWindow('image',200,200)
cv2.waitKey(1) 

while true:
   (...)
   img = cv2.imread('test.jpg', cv2.IMREAD_COLOR)
   cv2.imshow('image',img)  
   (...)

这是另一种替代方案,它不是解决方法而是解决方案:您可以使用import subprocess lines = subprocess.check_output('source ~/.bash_profile; alias',shell=True).split(b'\n') manager = get_ipython().alias_manager for line in lines: line = line.decode("utf-8") split_index = line.find('=') cmd = line[split_index+1:] alias = line[:split_index] cmd = cmd[1:-1] print ("ALIAS:{}\t\tCMD:{}".format(alias,cmd)) manager.soft_define_alias(alias, cmd) 魔法在笔记本本地定义别名,并使用%alias魔法在将来使这些别名可用。这里有更多别名技巧:https://github.com/ipython/ipython/wiki/Cookbook:-Storing-aliases

有关此%store魔法的更多信息:http://ipython.readthedocs.io/en/stable/config/extensions/storemagic.html

下一步是攻击%store魔法以保留这些别名:https://github.com/ipython/ipython/blob/master/IPython/extensions/storemagic.py

对于后人,这是我在最终找到解决方案之前运行的一些实验的结果:

我在%% bash单元格中提取了我的.bash_profile。在该单元格内,我能够查询我在.bash_profile中定义的变量值,并能够通过调用%store列出别名命令。但是,我仍然无法使用别名命令。此外,我的.bash_profile中定义的变量只能在具有源调用的单元内访问:尝试在后续的%% bash单元中访问它们不起作用,alias命令也失败。更有意思的是:如果我使用alias来源,我无法查询我的bash配置文件中定义的变量,也无法在同一单元格中使用! shell命令列出我的别名。

我只想说,!魔法是挑剔的。