error importing modules
MRAB
python at mrabarnett.plus.com
Mon Apr 22 12:32:22 EDT 2013
On 22/04/2013 15:54, Rodrick Brown wrote:
> I'm using the fabric api (fabfile.org <http://fabfile.org>)
>
> I’m executing my fab script like the following:
>
> $ fab -H server set_nic_buffers -f set_nic_buffers.py
> Traceback (most recent call last):
> File "/usr/lib/python2.7/site-packages/fabric/main.py", line 739, in main
> *args, **kwargs
> File "/usr/lib/python2.7/site-packages/fabric/tasks.py", line 316, in
> execute
> multiprocessing
> File "/usr/lib/python2.7/site-packages/fabric/tasks.py", line 213, in
> _execute
> return task.run(*args, **kwargs)
> File "/usr/lib/python2.7/site-packages/fabric/tasks.py", line 123, in run
> return self.wrapped(*args, **kwargs)
> File "/home/rbrown/repos/unix-tools/tools/fabfiles/nb.py", line 5, in
> set_nic_buffers
> f_exec = modules.Fabexec('set_nic_buffers',
> '/var/tmp/unix-tools/tools/set_nic_buffers.sh')
> TypeError: 'module' object is not callable
>
> My paths all seem to be fine not sure what’s going on
>
> $ python -c 'import modules.Fabexec; print (modules.Fabexec)'
> <module 'modules.Fabexec' from 'modules/Fabexec.pyc'>
>
> Fabfiles
>
> |-- modules
> | |-- Fabexec.py
> | |-- Fabexec.pyc
> | |-- __init__.py
> | `-- __init__.pyc
> |-- systune.py
> |-- systune.pyc
> `-- set_nic_buffers.py
>
> --- set_nic_buffers.py ---
> import modules
> from modules import Fabexec
> def set_nic_buffers():
> f_exec = modules.Fabexec('set_nic_buffers',
> '/var/tmp/unix-tools/tools/set_nic_buffers.sh')
> f_exec.run()
>
'modules.Fabexec' is the module/script 'Fabexec'. What you want is the
'Fabexec' class within the 'Fabexec' module.
> --- Fabexec.py ---
> from fabric.api import run, cd, sudo, env
> from fabric.contrib import files
> from fabric.colors import green
>
> class Fabexec(object):
>
> repobase='/var/tmp/unix-tools'
>
> def __init__(self,script_name,install_script):
> self.script_name = script_name
> self.install_script = install_script
>
> def run(self):
> if files.exists(self.install_script):
> with cd(self.repobase):
> result = sudo(self.install_script + ' %s ' % env.host)
> if result.return_code != 0:
> print(red('Error occured executing %s' %
> self.install_script))
> else:
> print(green('%s executed successfully'))
> else:
> print(red('Error no such dir %s try running repo deploy
> script to host %s' % (self.repobase, env.host)))
> raise SystemExit()
>
>
More information about the Python-list
mailing list