2015-07-14 2 views
0

Мне нужно использовать мои псевдонимы от ~/.bashrc на IPython.Как использовать псевдонимы ~/.bashrc на IPython 3.2.0?

Сначала я пытался, но это не сработало

%%bash 
source ~/.bashrc 

Согласно this post мы должны сделать

%%bash 
. ~/.bashrc 
f2py3 -v 

Это займет 20 секунд, чтобы запустить на Юпитере, и я получаю:

bash: строка 2: f2py3: команда не найдена

Мой ~/.bashrc файл выглядит как

alias f2py3='$HOME/python/bin/f2py' 

Баш: линия 2: Тип: f2py3: не найдены

Ни псевдоним, источник, ни% rehashx% работают

%%bash 
alias f2py3='$HOME/python/bin/f2py' 

Я действительно обнаружил, что проблема заключается в Python, который не может выполнить команду alias ни с sh или bash.

Могу ли я использовать псевдоним с магией IPython?

ответ

0

Вы можете разобрать файл Bashrc в IPython конфигурации и добавить любые пользовательские псевдонимы вы определили:

import re 
import os.path 

c = get_config() 

with open(os.path.expanduser('~/.bashrc')) as bashrc: 
    aliases = [] 
    for line in bashrc: 
     if line.startswith('alias'): 
      parts = re.match(r"""^alias (\w+)=(['"]?)(.+)\2$""", line.strip()) 
      if parts: 
       source, _, target = parts.groups() 
       aliases.append((source, target)) 

    c.AliasManager.user_aliases = aliases 

Это должно быть помещено в ~/.ipython/profile_default/ipython_config.py.

%rehashx делает системные команды доступными в таблице псевдонимов, а также очень полезно, если вы хотите использовать ipython в качестве оболочки.

+0

Спасибо, но он все еще не работает. Я добавил «echo» чтение .bashrc'' к моему ~/.bashrc, но ничего не вижу после выполнения% rehashx%. У меня нет 'alias ll = 'ls -l'', но я все равно получаю то же самое, что вы получаете – ilciavo

+0

@ilciavo. Вы правы, я изменил свой ответ соответственно. '% rehashx' все еще может быть вам полезен, но это, по-видимому, разумный способ сделать ваши псевдонимы доступными. –

Смежные вопросы