web-dev-qa-db-fra.com

Python 2.7: aucune documentation trouvée lors de la saisie de l'aide ('print')

Je viens d'installer Python 2.7 et Python 3.2 sur mon Ubuntu 12.04 (32 bits).

Sudo apt-get install python python-doc python3 python3-doc

J'ai ouvert un Python 3 Shell (est-ce appelé ainsi) en tapant python3 à partir d'un terminal. Si je lance la commande help('print') tout fonctionne bien et je peux lire la documentation.

Cependant, si j'ouvre un Python 2.7 Shell (python depuis un terminal) lorsque je tape help('print'), je reçois le message suivant:

aucune documentation trouvée pour 'print'

Comment puis-je également utiliser la documentation dans Python 2.7?

3
lucacerone

Cela ressemble à un bogue de Python 2 car quelque chose comme help("dir") fonctionne correctement. Cela ne fonctionne probablement pas, car print est un mot clé spécial, contrairement à Python 3. Utilisez Python 3 ou exécutez la commande suivante au lieu de help("print"):

help("__builtin__.print")
3
Lekensteyn

Cette documentation est toujours installée car elle est intégrée aux fichiers source. La commande spécifiée ne fonctionne pas car, dans python2.7, print est à la fois une instruction et une fonction. Par conséquent, la fonction help peut être confuse.

Si vous utilisez, par exemple, help('os') ou help("if"), vous devriez obtenir les informations correctes:

$ python -c "help('if')"
The ``if`` statement
********************

The ``if`` statement is used for conditional execution:

   if_stmt ::= "if" expression ":" suite
               ( "Elif" expression ":" suite )*
               ["else" ":" suite]

It selects exactly one of the suites by evaluating the expressions one
by one until one is found to be true (see section *Boolean operations*
for the definition of true and false); then that suite is executed
(and no other part of the ``if`` statement is executed or evaluated).
If all expressions are false, the suite of the ``else`` clause, if
present, is executed.

Donc, la documentation est installée et ce comportement que vous voyez devrait être un bogue.

1
Salem