如果我在我的 Ubuntu 16.04 机器上的 ipython2/3 中执行任何系统命令,我会收到权限被拒绝错误,如下所示:
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
我还尝试使用as在系统范围内安装它
sudo pip2 install ipython
sudo pip3 install ipython
但问题仍然存在。我在 jupyter notebook 中没有遇到这个问题。
如何在 IPython 中使用系统命令?
如ipython docs中所写- 您应该在命令前加上
!
例如,
ls
你应该执行!ls
当我设置我的机器时,我创建了一个虚拟 rootUser 作为第一个管理员用户。后来,我创建了另一个与我的工作场所同名、uid和gid的用户,并将其添加到sudo中。这会导致权限问题,这真的很奇怪。虽然我不知道问题的实际原因,但我确实通过上述步骤重现了它。我通过创建与我的工作场所同名的第一个用户解决了这个问题。后来我相应地更改了uid和gid以及文件/直接权限。这解决了问题,我现在可以正常使用 ipython2/3。