This seems to be bug in emacs and its fixed in this commit.
As npostavs mentioned, you can use
(defun python-shell-completion-native-try ()
"Return non-nil if can trigger native completion."
(let ((python-shell-completion-native-enable t)
Are you using Python 3.7? Jedi doesn't support that version yet and so falls back to the next highest, which on most systems should be 2.7.
There's a couple of things you can do: You can simply wait for Jedi to support 3.7 which shouldn't take too long. You could also downgrade to 3.6. Or you could manually add 3.7 to the supported versions in the Jedi code....
I use the following:
python-shell-interpreter-args "--simple-prompt --pprint")
For python 3.6 I found jedi with company to be the most reliable but others may have different experiences. "mypath" below are the paths to packages I've created that I want autocomplete.