AWS Thinkbox Discussion Forums

ImportError: DLL load failed: Draft module not found

Hi

We’re just trying to install the latest Draft plugin, but we keep getting this error message :

[code]=======================================================
Error Message

Exception during render: An error occurred in RenderTasks(): Error in CheckExitCode(): Renderer returned non-zero error code, 1. Check the log for more information.
à Deadline.Plugins.ScriptPlugin.RenderTasks(String taskId, Int32 startFrame, Int32 endFrame, String& outMessage)

=======================================================
Slave Log

0: Task timeout is disabled.
0: Loaded job: Test 4 (999_050_999_5826668d)
0: INFO: StartJob: initializing script plugin Draft
0: INFO: Found Draft python module at: ‘C:\Users\mricbourg\AppData\Local\Thinkbox\Deadline\slave\Poste-0403\Draft\Draft.pyd’
0: INFO: About: Draft Plugin for Deadline
0: Plugin rendering frame(s): 0
0: INFO: Draft job starting…
0: INFO: Stdout Handling Enabled: False
0: INFO: Popup Handling Enabled: False
0: INFO: Using Process Tree: True
0: INFO: Hiding DOS Window: True
0: INFO: Creating New Console: False
0: INFO: Looking for bundled python at: ‘C:\Program Files\Thinkbox\Deadline\python\2.6.7\x64\python.exe’
0: INFO: Render Executable: “C:\Program Files\Thinkbox\Deadline\python\2.6.7\x64\python.exe”
0: INFO: Render Argument: -u “//fx-nas-01/vfx/RENDER/DRAFT/slate/SLATE_generic.py” username="" entity="" version="" startFrame=4050 endFrame=4069 frameList=4050-4069 outFile="\fx-nas-01\vfx\RENDER\DraftBlast4.mov" inFile="\fx-nas-01\vfx\RENDER\SWAP\tmp_9wivh\DraftBlast.####.png"
0: INFO: Startup Directory: “C:\Users\mricbourg\AppData\Local\Thinkbox\Deadline\slave\Poste-0403\Draft”
0: INFO: Process Priority: BelowNormal
0: INFO: Process is now running
0: STDOUT: Traceback (most recent call last):
0: STDOUT: File “//fx-nas-01/vfx/RENDER/DRAFT/slate/SLATE_generic.py”, line 7, in
0: STDOUT: import Draft
0: STDOUT: ImportError: DLL load failed: Le module spécifié est introuvable.
0: INFO: Process exit code: 1

=======================================================
Error Type

RenderPluginException

=======================================================
Error Stack Trace

à Deadline.Plugins.Plugin.RenderTask(String taskId, Int32 startFrame, Int32 endFrame)
à Deadline.Slaves.SlaveRenderThread.RenderCurrentTask(TaskLogWriter tlw)[/code]

I tried to add our Draft plugin path to the Draft Library Path, but nothing seems to work. The SLATE_generic.py is one of our Draft template script that used to work well with our previous Draft version. The weird thing is that just a few lines before the error message, Deadline says that he found the Draft python module. We also added the Draft python module path to our environment variables.

Deadline Version: 5.1.0.46114
FranticX Version: 2.0.0.46111

Any suggestions?
Thanks

Maxime

This error message can crop up for a number of reasons. Most likely you’re missing one or more files, or one or more files are not being replaced properly. To make sure you have the correct version of all of the files, manually clear out that folder (save copies of any files you’ve changed elsewhere, of course), then do a fresh install. If that doesn’t work, we can compare the contents of your directory with what I have here, to see if specific files are still missing.

Once a simple draft script is running, if you customized any of the files previously, go back in and redo those customizations using the saved copies for reference, and see if it still works.

Cheers,
Andrea

Hi Angela,

If you’re talking about the Draft folder containing the plugin itself, we already tried it, with no success. The last thing we changed was adding the path of the module to the Draft Library path, but still ain’t working. We tried all that a long time ago and met the same problems so we came back to our previous version for that reason. Now, we are testing a parallel installation (mainly on MY computer, not on the farm), but we’re facing the same problem.

Hmmm… odd…

Have you tried running Draft from the command line, rather than through Deadline? I’m wondering if there might be a problem in using an older version of Deadline with Draft… I’m also checking with Jon to see if he knows of any issues, but please do test running Draft from the command line.

In order to run Draft from the command line, you will need to set your MAGICK_CONFIGURE_PATH and MAGICK_FONT_PATH. For me, I have:
MAGICK_CONFIGURE_PATH=C:\Draft\Windows\64bit
MAGICK_FONT_PATH=C:\Draft\Windows\64bit

Also, what OS are you using?

Cheers,
Andrea

We are using Windows 7 x64 version 6.1 service pack 1

When you say to execute Draft from command-line, do you mean deadlinecommand.exe? If not, where can I find documentation on the way to do that, because submitting Draft job from command-line would be a nice feature to us.

I meant without using deadline at all, just the way you would run a normal python script. Assuming you have all your paths set up, it’s a simple as typing:

python my_script_name.py at the command line. (If you don’t have all your paths set up, you’d need to specify the directory for python, the script, and probably run the command from within the Draft folder.)

You can also just type “python” at the command line, and then start typing in lines of executable code to run interactively. (Remember to type “import Draft” before trying any draft-specific commands, of course.) http://docs.python.org/2/tutorial/interpreter.html#interactive-mode

Cheers,
Andrea

Ok.

I just tried to start python in a command prompt and type : import Draft. I’m getting the error message that it cannot find the module. But I just tried it directly on one of our render nodes (where Draft works perfectly), and importing Draft in python running in a command prompt also crash. I saw that the python version in deadline is 2.6.x, and we mainly use 2.7.3 here, outside of deadline. May it be the cause?

Thansk

Yeah, Draft currently uses Python 2.6. Instead of typing “python”, try specifying the path to the 2.6 python:

C:\Program Files\Thinkbox\Deadline\python\2.6.7\x64\python.exe

Oh, and your MAGICK* paths are probably going to be something like:

MAGICK_CONFIGURE_PATH = C:\Users\mricbourg\AppData\Local\Thinkbox\Deadline\slave\Poste-0403\Draft

I just heard back from Jon. He doesn’t think the version of Deadline will cause problems.

Could you check if this is the contents of your Draft folder:

avcodec-54.dll avformat-54.dll avutil-51.dll boost_python-2_6-vc90-mt-1_46_1.dll colors.xml Draft.pyd DraftParamParser.py libx264-125.dll SourceSansPro-Regular.otf swscale-2.dll tbb.dll type.xml Version

Here is the content of my folder. It seems I have the same stuff as you. I included the files sizes so you have all the infos.

[code] Le volume dans le lecteur C s’appelle Nouveau nom
Le num‚ro de s‚rie du volume est 9C56-C24F

R‚pertoire de C:\Users\mricbourg\AppData\Local\Thinkbox\Deadline\slave\Poste-0403\Draft

2013-09-26 16:46 .
2013-09-26 16:46 …
2012-10-17 12:32 8,170,612 avcodec-54.dll
2012-10-17 12:32 1,580,652 avformat-54.dll
2012-10-17 12:32 426,476 avutil-51.dll
2011-05-24 14:24 296,448 boost_python-2_6-vc90-mt-1_46_1.dll
2012-11-19 14:15 1,383 colors.xml
2013-03-05 18:25 9,434,624 Draft.pyd
2012-11-19 14:15 10,176 DraftParamParser.py
2012-10-17 12:04 1,151,488 libx264-125.dll
2012-08-17 15:24 101,820 SourceSansPro-Regular.otf
2012-10-17 12:32 499,437 swscale-2.dll
2008-06-07 10:55 288,768 tbb.dll
2012-11-19 14:15 15,151 type.xml
2013-03-05 18:30 1,024 Version
13 fichier(s) 21,978,059 octets
2 R‚p(s) 149,947,580,416 octets libres[/code]

Have you tried loading Draft from the command line again, using the correct version of Python? In your command prompt window, type the following (including quotes), one line at a time:

cd C:\Users\mricbourg\AppData\Local\Thinkbox\Deadline\slave\Poste-0403\Draft set MAGICK_CONFIGURE_PATH=C:\Users\mricbourg\AppData\Local\Thinkbox\Deadline\slave\Poste-0403\Draft set MAGICK_FONT_PATH=C:\Users\mricbourg\AppData\Local\Thinkbox\Deadline\slave\Poste-0403\Draft "C:\Program Files\Thinkbox\Deadline\python\2.6.7\x64\python.exe" import Draft If it works, you should see the text:

Checking for license at @lic-thinkbox Draft 1.0.1.50572

This already work. Like I said in a previous post, if I call your python version from the draft folder you wrote in your last reply, everything’s work.

I just added the MAGICK_FONT_PATH variable, but still don’t work when I don’t call python from Draft server, and still don’t work from deadline. When I call python from Draft directory, import Draft works even if the 2 MAGICK variables are not there.

My apologies, I misunderstood your previous response.

As this is a Draft/Deadline combination issue, I’m communicating with several people to figure out what the problem is, and will get back to you via the support ticket once I know more. (Let me know if you didn’t get cc’d on the support ticket response I sent.)

Andrea

When you say “Draft works perfectly”, do you mean it works fine even through Deadline on that render node? Is this only a problem on specific machines?

Also, when you upgraded Draft, where did you extract the new binaries to?

Hi Jon,

When I talk about the machines where “Draft works perfectly”, I’m talking about all our render nodes where Draft hadn’t been updated yet. In other means, the entire farm for now. If I launch a Draft job with Deadline, everything works perfectly. But when I remotely connect on one of these nodes (any of them), and I start the python.exe in C:\Program Files\Thinkbox\Deadline\python\2.6.7\x64, if I type import Draft, I get the error message shown in the jpg attachement, even if it works well with Deadline.

On the local Deadline test repository (the one I setted up on my computer where Draft is updated to the latest version), I can’t submit from Deadline, and I get the same error message as above when trying to launch python from C:\Program Files\Thinkbox\Deadline\python\2.6.7\x64.

At first, I tought it was an environment variable problem, which would explain why my comp couldn’t find my Draft module, but since I’m getting the same error message on machines that works perfectly when I submit Draft jobs from Deadline, I’m a little lost.

Hope it helps you…

Maxime
importDraft.jpg

Ah, so I think I see where the problem is, or at least part of it.

From the sounds of it, you guys are updating Draft individually on each node, which is not the way the Draft integration with Deadline is supposed to work. All the blades check the version of Draft available in the ‘Draft’ folder in your Deadline Repository, and copy it over if it’s different than what the Slave has in its working folder.

Basically, when upgrading Draft, you guys should be overriding the binaries in that ‘Draft’ folder on the repository – if you’re installing it on the blades, and adding that folder to the PATH/PythonPath, it could interfere with the version the Slave is copying from the repository.

We override the binaries for the update.
Tought, when it is the first update, we have to delete the Appdata folder (AppData\Local\Thinkbox\Deadline) to force the update. Oterwise, it dosen’t do it. It is an old bug from the first beta version

(see old topic here: viewtopic.php?f=127&t=7376&start=10)

Ah, I see. Well, at the very least, when you’re doing this:

I start the python.exe in C:\Program Files\Thinkbox\Deadline\python\2.6.7\x64, if I type import Draft, I get the error message shown in the jpg attachement, even if it works well with Deadline.

That is likely an environment variable issue – the reason it works through Deadline is that Deadline sets those automatically before running your Draft script. If you’re running from a command line interpreter, you need to manually set the PYTHONPATH and MAGICK_CONFIGURE_PATH environment variables to point to the Draft folder before trying to import Draft.

I still don’t know why it would not work for you on your test repository through Deadline, though – we tried the latest Draft version with the latest Deadline 5.1 version and it worked fine here. It sounds like there’s the wrong version of one of the DLLs in there somewhere. I would definitely try deleting the contents of the ‘Draft’ directory in your repo, and re-extracting the latest Draft version to that folder.

Hi Jon,

Just did it back. Just to be sure, I wiped the content of this folder : \poste-0403\DeadlineRepository\Draft\Windows\64bit

Then, I unzipped the Draft_1_0_1_50572.zip file that I downloaded on your site to that folder. Restart Deadline and my slave, and I still got the error message.

Do I need to force some environment variable somewhere, especially concerning the MAGICK things?

Like I mentioned, Deadline sets environment variables automatically for you. The only time you need to worry about this is when you’re trying to import Draft manually from a command-line interpreter. And to be honest, not setting the MAGICK_CONFIGURE_PATH shouldn’t be stopping you from importing Draft to begin with, it’d just lead to potential issues once you try creating Annotations.

Do you have any other installs of Draft anywhere else on your test machine? The only other thing I can think of that would be creating these issues is a conflicting version sitting somewhere that Deadline can find, and loading some DLLs from each.

Privacy | Site terms | Cookie preferences