12

When we type

python3 --version (or --V)

it is supposed to show us the version of the python right?

However, when I do this I get the following error:

NameError: name 'python3' is not defined

This is also the case when I tried to install the pip by using

>>> python3 get-pip.py
  File "<stdin>", line 1
    python3 get-pip.py
              ^
SyntaxError: invalid syntax
0

2 Answers 2

20

python3 is not Python syntax, it is the Python binary itself, the thing you run to get to the interactive interpreter.

You are confusing the command line with the Python prompt. Open a console (Windows) or terminal (Linux, Mac), the same place you'd use dir or ls to explore your filesystem from the command line.

If you are typing at a >>> or In [number]: prompt you are in the wrong place, that's the Python interpreter itself and it only takes Python syntax. If you started the Python prompt from a command line, exit at this point and go back to the command line. If you started the interpreter from IDLE or in an IDE, then you need to open a terminal or console as a separate program.

Other programs that people often confuse for Python syntax; each of these is actually a program to run in your command prompt:

  • python, python2.7, python3.5, etc.
  • pip or pip3
  • virtualenv
  • ipython
  • easy_install
  • django-admin
  • conda
  • flask
  • scrapy
  • setup.py -- this is a script you need to run with python setup.py [...].
  • Any of the above together with sudo.

with many more variations possible depending on what tools and libraries you have installed and what you are trying to do.

If given arguments, you'll get a SyntaxError exception instead, but the underlying cause is the same:

>>> pip install foobar
  File "<stdin>", line 1
    pip install foobar
              ^
SyntaxError: invalid syntax
Sign up to request clarification or add additional context in comments.

Comments

1

If you're using windows you can try in a Python prompt:

>>>>import pip
>>>>pip.main(['install', 'foobar'])

2 Comments

Yes, many command-line tools are built with Python itself and their code can usually be imported to achieve the same thing. But the syntax differs from project to project, and for the level of experience that leads to making this mistake, figuring out the exact Python API for the tool is usually well beyond reach.
And this is not limited to Windows, import pip and pip.main() would work on any OS.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.