Ошибка IPython при выполнении системных команд

Если я выполняю какие-либо системные комментарии в ipython2/3 на моем компьютере с Ubuntu 16.04, я получаю сообщение об ошибке отказа в доступе следующим образом:

In [1]: ls
--------------------------------------------------------------------------
PermissionError                           Traceback (most recent call last)
<ipython-input-1-5b21b94dda0e> in <module>()
----> 1 get_ipython().magic('ls ')

Мне не нужно было делать ничего особенного в Ubuntu 14.04. Я установил ipython2 и ipython3 с

pip2 install ipython --user
pip3 install ipython --user

Я также попытался установить его для всей системы с sudo как

sudo pip2 install ipython
sudo pip3 install ipython

Но проблема все еще сохраняется. Я не получаю эту проблему в ноутбуке Jupyter.

Как я могу использовать системные команды в IPython?

2 ответа

Решение

Когда я настраивал свой компьютер, я создал фиктивного пользователя rootUser в качестве первого пользователя- администратора. Позже я создал другого пользователя с тем же именем, uid и gid, что и на моем рабочем месте, и добавил его в sudo. Это как-то вызывает проблемы с разрешениями, что действительно странно. Хотя я не знаю истинную причину проблемы, но я воспроизвел ее с помощью описанных выше шагов. Я решил эту проблему, создав первого пользователя с тем же именем, что и мое рабочее место. Позже я соответственно изменил разрешения uid, gid и file/direct. Это решило проблему, и теперь я могу нормально использовать ipython2/3.

Как написано в ipython docs - вы должны добавить к команде префикс !

например для ls Вы должны выполнить !ls

Строковые списки (IPython.utils.text.SList) - удобный способ обработки выходных данных системных команд. Они создаются с помощью синтаксиса var =! Cmd.

Сначала мы получаем вывод 'ls -l':

[Q:doc/examples]|2> lines = !ls -l
 ==
['total 23',
 '-rw-rw-rw- 1 ville None 1163 Sep 30  2006 example-demo.py',
 '-rw-rw-rw- 1 ville None 1927 Sep 30  2006 example-embed-short.py',
 '-rwxrwxrwx 1 ville None 4606 Sep  1 17:15 example-embed.py',
 '-rwxrwxrwx 1 ville None 1017 Sep 30  2006 example-gnuplot.py',
 '-rwxrwxrwx 1 ville None  339 Jun 11 18:01 extension.py',
 '-rwxrwxrwx 1 ville None  113 Dec 20  2006 seteditor.py',
 '-rwxrwxrwx 1 ville None  245 Dec 12  2006 seteditor.pyc']
Другие вопросы по тегам