3 votes

Les sous-commandes IPython ne fonctionneront pas si vous aliassez la commande "ipython".

J'ai modifié le titre de la question pour qu'il corresponde à la cause réelle de mon problème.

Dans ma configuration 14.04, ipython Les sous-commandes de l'utilisateur ne fonctionnent pas :

$ ipython locate
[TerminalIPythonApp] WARNING | File not found: u'locate'

Ceci est similaire à un autre problème à partir de versions antérieures d'Ubuntu et d'IPython. J'ai la version "stock" de ipython avec Ubuntu 14.04.

Python 2.7.6 (default, Mar 22 2014, 22:59:56) 
Type "copyright", "credits" or "license" for more information.

IPython 1.2.1 -- An enhanced Interactive Python.

J'ai trouvé qu'appeler ipython2.7 locate par exemple, fonctionne, et c'est une sorte de solution de rechange pour le moment, mais elle génère un avertissement :

$ ipython2.7 locate
/usr/lib/python2.7/dist-packages/IPython/frontend.py:30: UserWarning: The top-level `frontend` package has been deprecated. All its subpackages have been moved to the top `IPython` level.
  warn("The top-level `frontend` package has been deprecated. "
/home/whoever/.config/ipython

Existe-t-il un moyen simple et efficace de résoudre ce problème ?

2voto

Frank M Points 296

Je me sens un peu bête de "répondre" à ma propre question alors qu'il s'agit en réalité d'une erreur de pilotage. D'un autre côté, d'autres personnes pourraient avoir le même problème que moi, oubliant que nous avons astucieusement aliasé une commande commune Shell, et se demandant ensuite pourquoi elle ne fonctionne plus comme annoncé. Ce problème m'a piqué plusieurs fois.

La solution, si vos fichiers ~/.bash_profile ou ~/.bashrc contiennent des commandes "alias" et qu'elles ne fonctionnent pas comme prévu, est d'essayer d'appeler le programme par son chemin explicite. Dans mon cas,

ipython somecommand somescript.py

déclenche l'expansion de l'alias du Shell, mais

/usr/bin/ipython somecommand somescript.py

Non.

0voto

dmitry_romanov Points 121

Pour éviter les expations Shell de l'alias dans bash, vous pouvez l'appeler en utilisant soit

\ipython whatever

o

"ipython" whatever

Merci pour votre localisation du problème (je veux dire des alias).

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X