python local modules -
i have several project directories , want have libraries/modules specific them. instance, might have directory structure such:
myproject/ mymodules/ __init__.py myfunctions.py myreports/ mycode.py
assuming there function called add
in myfunctions.py
, can call mycode.py
naive routine:
execfile('../mymodules/myfunctions.py') add(1,2)
but more sophisticated it, can do
import sys sys.path.append('../mymodules') import myfunctions myfunctions.add(1,2)
is idiomatic way this? there mention modifying pythonpath
(os.environ['pythonpath']
?), or other things should into?
also, have seen import
statements contained within class statements, , in other instances, defined @ top of python file contains class definition. there right/preferred way this?
don't mess around execfile
or sys.path.append
unless there reason it. rather, arrange code proper python packages , importing other library.
if mymodules
in fact part of 1 large project, set package so:
myproject/ __init__.py mymodules/ __init__.py myfunctions.py myreports/ __init__.py myreportscode.py
and can import mymodules
anywhere in code this:
from myproject.mymodules import myfunctions myfunctions.add(1, 2)
if mymodules
code used number of separate , distinct projects, make package in own right , install whatever environment needs used in.
Comments
Post a Comment