I personally like Franks approach too.
From Nuke 7 onward i believe you can do this...
it adds all subdirectories under an init.py
import os
currentDir=os.path.dirname(__file__)
pluginFolders=os.listdir(currentDir)
for i in pluginFolders:
if os.path.isdir(os.path.join(currentDir,i)):
nuke.tprint('loaded %s' % os.path.join(currentDir,i))
nuke.pluginAddPath(os.path.join(currentDir,i))
init.py
gizmos/
python/
icons/
toolsets/
callbacks/
.../
this way you can create your folder structure and dont have to worry
about changing the init all the time...
cheers
johannes
On 11/18/2014 05:31 AM, Matthew Doll wrote:
Great, thanks, I'll look into the namespaces stuff which I'm not very
familiar with. I can strongarm (and in fact, have done so) all this
stuff, just want to find a more robust/elegant way, I'll look into the
suggestions replied here. Thanks.
On Mon, Nov 17, 2014 at 5:20 PM, Frank Rueter|OHUfx <fr...@ohufx.com
<mailto:fr...@ohufx.com>> wrote:
>>-Is there a way to have Nuke use the entire subdirectory for the
pluginAddPath? E.G., only need '/WORK
>>/Nuke/IN_PRODUCTION/' and not the other two?
No, you have to explicitly add the directories. There are scripts
hovering around that are triggered via the menu.py that recurse
through the sub tree and run nuke.pluginAddPath on each one, so
you can totally roll your own logic here.
I personally prefer setting the path to the main repository via an
environment variable on each machine, then using
nuke.pluginAddPath in a init.py within that main repo to load sub
directories. But that's just me.
>>-Under /scripts/ I have several .py files, do I need to
explicitly "from myscript1 import *" for every file in that
folder, or is
>>there a way to bring in all files under that dir?
It depends on how you want to organise yourcode. There are several
ways to manage your files via name spaces. Have a read about
packages here:
https://docs.python.org/2/tutorial/modules.html
>>-Do I need to explicitly import appropriate modules for each
script in .py file itself? E.G. myscript1.py calls nuke.XYZ(), if I
>>don't put "import nuke" in that file it throws an error, but
"import nuke" is called ahead of myscript1.py in the menu.py file...
you have to import the module into the name space you are trying
to access it from. When the menu.py does "import nuke", that
module is imported to a different name space than your code is run
from (i.e. scripts.myscripts1)
On 18/11/14 9:45 am, Matthew Doll wrote:
Hiya folks, I'm certain this has been answered but I cannot find
it in the archives...
I am trying to append my plugin path to a generic dumping ground
like so:
nuke.pluginAddPath('/WORK/Nuke/IN_PRODUCTION/')
nuke.pluginAddPath('/WORK/Nuke/IN_PRODUCTION/nodes/')
nuke.pluginAddPath('/WORK/Nuke/IN_PRODUCTION/scripts/')
Under '/WORK/Nuke/IN_PRODUCTION/' I have a menu.py where I want
to import all the nodes under /nodes/ and scripts under /scripts/
My question is threefold:
-Is there a way to have Nuke use the entire subdirectory for the
pluginAddPath? E.G., only need '/WORK/Nuke/IN_PRODUCTION/' and
not the other two?
-Under /scripts/ I have several .py files, do I need to
explicitly "from myscript1 import *" for every file in that
folder, or is there a way to bring in all files under that dir?
-Do I need to explicitly import appropriate modules for each
script in .py file itself? E.G. myscript1.py calls nuke.XYZ(), if
I don't put "import nuke" in that file it throws an error, but
"import nuke" is called ahead of myscript1.py in the menu.py file...
Thanks,
Matt
_______________________________________________
Nuke-python mailing list
Nuke-python@support.thefoundry.co.uk
<mailto:Nuke-python@support.thefoundry.co.uk>,http://forums.thefoundry.co.uk/
http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python
--
ohufxLogo 50x50 <http://www.ohufx.com> *vfx compositing
<http://ohufx.com/index.php/vfx-compositing> | *workflow
customisation and consulting
<http://ohufx.com/index.php/vfx-customising>* *
_______________________________________________
Nuke-python mailing list
Nuke-python@support.thefoundry.co.uk
<mailto:Nuke-python@support.thefoundry.co.uk>,
http://forums.thefoundry.co.uk/
http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python
_______________________________________________
Nuke-python mailing list
Nuke-python@support.thefoundry.co.uk, http://forums.thefoundry.co.uk/
http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python
____ ESET 10736 (20141117) ____
The message was checked by ESET Mail Security.
--
STUDIO RAKETE GmbH
Johannes Hezer, Compositing TD & Stereoscopic SV
Schomburgstr. 120
D - 22767 Hamburg
j.he...@studiorakete.de
Tel:+49 (0)40 - 380 375 69 - 0
Fax:+49 (0)40 - 380 375 69 - 99
------------------------------------------------------
Pflichtangaben laut Handelsgesetzbuch und GmbH-Gesetz:
STUDIO RAKETE GmbH
Schomburgstr. 120 D - 22767 Hamburg
www.studiorakete.de / i...@studiorakete.de
Geschaeftsfuehrer: Jana Bohl
Die Gesellschaft ist eingetragen im Handelregister des
Amtsgerichts Hamburg unter der Nummer HR B 95660
USt.-ID Nr.: DE 245787817
____ ESET 10740 (20141118) ____
The message was checked by ESET Mail Security.
_______________________________________________
Nuke-python mailing list
Nuke-python@support.thefoundry.co.uk, http://forums.thefoundry.co.uk/
http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python