Paweł Pedryc
Paweł Pedryc

Reputation: 396

import: command not found

I have this code in myname.py:

# myname.py
def get_name():
    return "Jim"

and this in hello.py:

# hello.py
import myname

name = myname.get_name()
print("hello {}".format(name))

When I try to execute hello.py in the MINGW64 shell, this error happens:

b2b@DESKTOP-5QEK604 MINGW64 ~/Desktop/Python moje projekty/Dev/apiarena_django/git (master)
$ ./hello.py
./hello.py: line 2: import: command not found
./hello.py: line 4: syntax error near unexpected token `('
./hello.py: line 4: `name = m.get_name()'

How do I fix the problem?

Upvotes: 2

Views: 21898

Answers (2)

Douglas Larson
Douglas Larson

Reputation: 61

I think the answer was covered by Tim Roberts implicitly, but to be more explicit, it is just context switching from shell scripting to python; a mistake I have made and thus stumbled across this. Normally run a python file with the python command ... unless you really were trying to run a shell script that had python code.

./myPyFile.py

--> needs env set at top of file with:

#! /usr/bin/env python

versus:

> python myPyFile.py

Upvotes: 1

Tim Roberts
Tim Roberts

Reputation: 54727

To run a Python script as a command, without using the "python" command, your first line has to tell the system what interpreter to use. This is called a "she-bang" line. You can either type "python hello.py" or replace the first line with:

#! /usr/bin/env python

As it is, the system is trying to run your command as a bash script. There is no "import" command in bash.

Upvotes: 6

Related Questions