Question

I run Windows 7, and I can import built-in modules, but when I save my own script and try to import it in IDLE, I get an error saying that the module doesn't exist.

I use the Python text editor found by clicking "File" and "New Window" from the Python Shell. I save it as a .py file within a Module folder I created within the Python directory. However, whenever i type import module_name in IDLE, it says that the module doesn't exist.

What am I doing wrong, or not doing? I've tried import module_name, import module_name.py, python module_name, python module_name.py

Was it helpful?

Solution

Python uses PYTHONPATH environment variable to define a list of folders which should be looked at when importing modules. Most likely your folder is not PYTHONPATH

OTHER TIPS

Try to add the module's path to sys.path variable:

import sys

sys.path.append(pathToModule)

The way to import your own modules is to place the file in the directory of your program and use the following code:

from Module import *

where Module is the name of your module.

Where are you storing the module you created? When I create a module, I do the following:

  1. Create a folder in the lib\sitepackages folder in your python folder ex: myModules
  2. Save a blank python file named init.py in this folder. The file does not have to contain any syntax. Later on, you can set module requirements in this file if you wish.
  3. Save your module into this folder ex: myGamesModule.py

In idle (or whichever python connected IDE you use) type:

from myModules import myGamesModule or from myModules import myGamesModule as myGmMod

That should import your module and then you can call the classes etc ex myGmMod.Player()

I am sure that this is correct, as I have just done it and it was ok.

add a blank file called init.py to the module folder. this tells python that the folder is a package and allows you to import from it the file name should be

__init__.py

stackoverflow keeps formatting my answers and messing thngs up. Thats 2 underscores on each side ofv the word init

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top