after add
(elpy-enable) in my .emacs file
then open a .py file when typing I truly get autocompletion, but without function description.
So search and found jedi mode. Then I found elpy already include jedi mode, but seems not enable it by default.
I found this command in elpy-wiki M-x elpy-set-backend jedi, but emacs told me [Not match]
Another thing that descripted at wiki-configuration
(when (require 'elpy nil t)
(elpy-enable)
(elpy-clean-modeline))
I have been told that Symbol's function definition is void: ely-clean-modeline
I'm confused..
Hello!
In turn to your questions:
then open a .py file when typing I truly get autocompletion, but without function description.
So search and found jedi mode. Then I found elpy already include jedi mode, but seems not enable it by default.
There are two things called "jedi", which would explain the confusion. First there is a Python library which provides introspection to Python code. This is one option that Elpy can use to provide completion. You have to install the jedi Python library in your virtualenv or globally to use it.
M-x elpy-config should tell you if you have it installed or not, and also tell you about other possible missing packages.
There is also an Emacs library called "emacs-jedi", which is an Emacs extension that interfaces with the Python library called Jedi, just like Elpy does. You can not (sensibly) use both Elpy and emacs-jedi at the same time.
I hope this solves the confusion and allows you to get full completion. :-)
I found this command in elpy-wiki M-x elpy-set-backend jedi, but emacs told me [Not match]
I have been told that Symbol's function definition is void: ely-clean-modeline
You found two outdated entries in the wiki. I am sorry for that – neither functionality is there anymore. I updated the wiki to match the current behavior. If you find further problems in the wiki or the official documentation, please do not hesitate to report them as bugs here!
Thanks! pretty clear, now I know differences between jedi and emacs-jedi.
But how can do with my configuration to let company-mode not only prompting the function name but also with the function's signature information. I mean the parameters that function needed.
It should just work if you have either rope or jedi installed and available to Python.
Could you post the output of M-x elpy-config?
Also, what _exactly_ are you seeing, and what _exactly_ do you expect?
Here is elpy-config info:
Virtualenv........: None
RPC Python........: 2.7.6 (/usr/bin/python)
Interactive Python: python (/usr/bin/python)
Emacs.............: 24.4.1
Elpy..............: 1.6.0
Jedi..............: 0.8.1
Rope..............: 0.10.2
Syntax checker....: pyflakes (/usr/local/bin/pyflakes)
Here is what I can see:

Here is what I want to see:(it is an image about "auto complete", I copied it from google images.)

Hope it will clean.
Thank you!
Yes, that makes it clearer.
Elpy does not, by default, display anything beyond what you see. You can use C-d to display the docstring of the completion option you have highlighted. Once you have completed a function or method, Elpy will display the arguments in the echo area, giving you an idea what you are entering.
If you want the docstrings to pop up like in the example you posted there, you can install the company-quickhelp extension and use that. See the wiki for more information.
Great!
Another problem is How can company-mode work with PySide package or other Packages like PyQt?
It seems I have to set the package path for company-mode, so that company-mode can extract information from PySide?
Company displays completions, but does not extract them. Elpy uses either the Jedi or Rope Python library to get this information. For these libraries to find PyQt, it has to be available to Python. Make sure that "import PySide" works in a Python interpreter, and then use M-x elpy-rpc-restart to ensure Elpy restarts all background processes.
If you still do not get completions at that point, it is possible that PyQt is written in a way that is not supported by Rope or Jedi for extraction of information. I do not know nor use PySide, so I can not tell you if it _should_ work. In this case, please provide a full description of the problem: What exactly did you do? What exactly happened? What exactly did you expect to happen?
I'm sure PySide is available to Python in bash environment.
Python 2.7.6 (default, Sep 9 2014, 15:04:36)
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.39)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> from PySide.QtGui import *
>>>
Here is what I can see in emacs-elpy, only four functions for completion:

Here is what I can see in PyCharm:

I hope emacs can also point out functions like PyCharm did.
How can I do?
Thank you. From the output you provide, I can see that the backend communication of Elpy works, so the backend simply does not provide more completions. Looking at the types PyCharm provides, I would guess that the Q* types are some kind of magic wrapper that are difficult to find for the modules.
You can try to use the Jedi backend – M-x set-variable RET elpy-rpc-backend RET "jedi" RET M-x elpy-rpc-restart RET – and see if that can find those. If not, you could file a bug report with Jedi and/or rope about this, as they apparently do not support whatever way PySide uses to define methods.
Thank you!
It works!
Thanks for your patience!
Most helpful comment
Thank you. From the output you provide, I can see that the backend communication of Elpy works, so the backend simply does not provide more completions. Looking at the types PyCharm provides, I would guess that the Q* types are some kind of magic wrapper that are difficult to find for the modules.
You can try to use the Jedi backend –
M-x set-variable RET elpy-rpc-backend RET "jedi" RET M-x elpy-rpc-restart RET– and see if that can find those. If not, you could file a bug report with Jedi and/or rope about this, as they apparently do not support whatever way PySide uses to define methods.