I have installed python 2.6.6 and root 5.28/00c (Apr 15 2011) msi for windows XP. The pyroot tutorials do not work. I get the following error message:
Python 2.6.6 (r266:84297, Aug 24 2010, 18:46:32) [MSC v.1500 32 bit (Intel)] on win32
Type “copyright”, “credits” or “license()” for more information.
****************************************************************
Personal firewall software may warn about the connection IDLE
makes to its subprocess using this computer's internal loopback
interface. This connection is not visible on any external
interface and no data is sent to or received from the Internet.
****************************************************************
IDLE 2.6.6 ==== No Subprocess ====
Traceback (most recent call last):
File “C:\root\tutorials\pyroot\h1draw.py”, line 4, in
from ROOT import TCanvas, TPad, TFile, TPaveLabel, TPaveText
File “C:\root\bin\ROOT.py”, line 85, in
import libPyROOT as _root
ImportError: DLL load failed: The specified module could not be found.
I have installed python 2.6.6 and root 5.28/00 (Dec 14 2010) msi for windows XP on another pc and everything works fine. The environmental variables are the same. I do not understand the problems.
May you be so kind to help me?
May I still download the version root 5.28/00 (Dec 14 2010) msi? Where?
Many thanks in advance.
first questions would be what PYTHONPATH looks like, whether it has $ROOTSYS/bin in there, whether paths are properly translated (cygwin v.s. windows conventions), and of course whether libPyROOT.pyd actually lives in $ROOTSYS/bin?
I grabbing at straws here, but does libPyROOT.pyd have the right size (I think libPyROOT.dll should sit along side it and have the same size)? I’ve seen it come up with size 0 on some of my own builds (although I understand you have a packaged install, but like I said, grabbing at straws since I’ve no idea what else could go wrong).
libPyROOT.lib in C:\root\lib is 2.720 KB while in C:\root\bin libPyROOT.dll is 900 KB and libPyROOT.pyd is 4 KB.
Tomorrow I am going to check on my other pc.
Thank you for the help,
luca
4KB sounds definitely too small, unless it is a symlink to libPyROOT.dll. An option would be to copy libPyROOT.dll to libPyROOT.pyd (even if it’s a link, as it may be that the interpreter can’t follow it for some reason).
I have tried your suggestions but it did not work.
I have checked on the other pc and the root folder in C: is 20 KB larger (root 5.28/00, Dec 14 2010) than the one of version root 5.28/00c, Apr 15 2011. So I have copied it into the slimmer one and now the most of the pyroot tutorials works and my python script with root graphics does not crash.
Is there an issue with the msi install package of version 00c?
can’t say that 20KB is not a result of the different versions. As for the .msi being broken, might have happened during the download or install as well. I’ll ask Bertrand.
[code]C:\home\bellenot\root\tutorials\pyroot>python
Python 2.6.5 (r265:79096, Mar 19 2010, 21:48:26) [MSC v.1500 32 bit (Intel)] on
win32
Type “help”, “copyright”, “credits” or “license” for more information.
execfile(“h1draw.py”)
TFile** hsimple.root Demo ROOT file with histograms
TFile* hsimple.root Demo ROOT file with histograms
KEY: TH1F hpx;1 This is the px distribution
KEY: TH2F hpxpy;1 py vs px
KEY: TProfile hprof;1 Profile of pz versus px
KEY: TNtuple ntuple;1 Demo ntuple
[/code]
Cheers, Bertrand.
When I try the latest 5.34.01 win32.vc90 on Windows 7 64-bit with Python 2.7.2 (from Pythonxy suite 2.7), the same ImportError appears again. I guess, the compiled version for windows may work with python 2.6. I think, it’s better to announce the proper working Python version for Windows Users.
Problem confirmed. I installed a 2.6.6 python and succeeded to import ROOT module.
So, the best combination now is ROOT win32.vc90 with python 2.6. If you are using Pythonxy 2.6 (with python 2.6) or other 2.6 version python suite, DO NOT upgrade your python suite, or you will not load ROOT module.