467,906 Members | 1,633 Online
Bytes | Developer Community
New Post

Home Posts Topics Members FAQ

Post your question to a community of 467,906 developers. It's quick & easy.

How can I import functions from another python file

Hi,
i have 2 python files in *different directory* , how can I import
python functions from 1 python file to another?

i get this error:
import task
ImportError: No module named task/

Thank you.

Apr 9 '07 #1
  • viewed: 11614
Share:
3 Replies
On 2007-04-09, yi*****@gmail.com <yi*****@gmail.comwrote:
Hi,
i have 2 python files in *different directory* , how can I import
python functions from 1 python file to another?

i get this error:
import task
ImportError: No module named task/

The directory that module is in must by on your python
path in order to import it. You can do it by modifying
sys.path or by setting the PYTHONPATH env variable.
$ mkdir otherdir
$ cat otherdir/amod.py
def afunc():
return 'found'
$ python
>>import amod
Traceback (most recent call last):
File "<stdin>", line 1, in ?
ImportError: No module named amod
>>import sys
sys.path.append('otherdir')
import amod
amod.afunc()
'found'
Apr 9 '07 #2
En Mon, 09 Apr 2007 18:06:11 -0300, yi*****@gmail.com <yi*****@gmail.com>
escribió:
i have 2 python files in *different directory* , how can I import
python functions from 1 python file to another?
See the tutorial about modules, packages, and the module search path:
http://docs.python.org/tut/node8.html
You can extend the search path using .pth files:
http://docs.python.org/lib/module-site.html
(but consider using packages instead of cluttering your search path with
infinite entries)

--
Gabriel Genellina

Apr 9 '07 #3
>Hi,
i have 2 python files in *different directory* , how can I import
python functions from 1 python file to another?

i get this error:
import task
ImportError: No module named task/



The directory that module is in must by on your python
path in order to import it.
That's not exactly correct. You *can* import from files that aren't in
your sys.path. What follows is a full-working (with python 2.5)
example. Perhaps ihooks is going to be obsolete at some point, but it
works now. See PEP 302 for more info. (I'm not sure how to modify this
example to work with a newer import mechanism or else I would provide it
to you.)

import os
def writefile(f, data, perms=750): open(f, 'w').write(data) and
os.chmod(f, perms)

foobar = """
print "this is from the foobar module"

def x():
print "This is the x function."

"""

writefile('/tmp/foobar.py', foobar)
# File:ihooks-example-1.py
import ihooks, imp, os, sys
def import_from(filename):
"Import module from a named file"
if not os.path.exists(filename):
sys.stderr.write( "WARNING: Cannot import file." )
loader = ihooks.BasicModuleLoader()
path, file = os.path.split(filename)
name, ext = os.path.splitext(file)
m = loader.find_module_in_dir(name, path)
if not m:
raise ImportError, name
m = loader.load_module(name, m)
return m

foo = import_from("/tmp/foobar.py")

print foo.x
print foo.x()
print foo.x()

You can do it by modifying
sys.path or by setting the PYTHONPATH env variable.
$ mkdir otherdir
$ cat otherdir/amod.py
def afunc():
return 'found'
$ python
>>>import amod
Traceback (most recent call last):
File "<stdin>", line 1, in ?
ImportError: No module named amod
>>>import sys
sys.path.append('otherdir')
import amod
amod.afunc()
'found'
--
Shane Geiger
IT Director
National Council on Economic Education
sg*****@ncee.net | 402-438-8958 | http://www.ncee.net

Leading the Campaign for Economic and Financial Literacy
Apr 10 '07 #4

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

1 post views Thread by Steve | last post: by
6 posts views Thread by Ian Sparks | last post: by
11 posts views Thread by Java and Swing | last post: by
2 posts views Thread by Kevin | last post: by
2 posts views Thread by Phoe6 | last post: by
2 posts views Thread by KraftDiner | last post: by
By using this site, you agree to our Privacy Policy and Terms of Use.