windows side-by-side configuration woes on windows HPC

M.-A. Lemburg mal at egenix.com
Mon Oct 12 17:41:44 EDT 2009


Nick Touran wrote:
> It is indeed a pain. I would really like a work-around. Matplotlib is
> supposed to be immune to this nowadays but it's not. Nor are some other
> third-party modules. Did they break with the new release? (2.6.3?)

The main problem appears to be that the the MS VC9 compiler defaults
to embedding a dependency on the MS VC90 CRT DLL into extension modules:

  <dependency>
    <dependentAssembly>
      <assemblyIdentity type="win32" name="Microsoft.VC90.CRT" version="9.0.21022.8"
processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity>
    </dependentAssembly>
  </dependency>

Unless you have installed the CRT runtime DLLs installed system-wide,
this will require the DLLs to be installed next to the extension
module DLL or PYD file... and that even though the Python process
itself will already have loaded the DLL from the Python directory.

A work-around is attached to the ticket as patch.

Even though a fix for distutils is planned in 2.6.4, this type of
problem will pop up for all kinds of software using VC90-based DLLs
as plugins, so it's probably better to just install the CRT runtime
DLLs in the WinSxS directory using the CRT installers:

x86:
http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en

x86_64:
http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en

> On Thu, Oct 8, 2009 at 1:12 PM, M.-A. Lemburg <mal at egenix.com> wrote:
> 
>> Nick Touran wrote:
>>> Copying my local copy of Python 2.6 to a Windows HPC 2008 system is
>> giving
>>> dll side-by-side configuration errors for some third-party packages
>>> (matplotlib, pyMSSQL, in particular). I understand that there is a
>> tradition
>>> of Python supporting XCOPY deployment, and would really like to be able
>> to
>>> just copy my C:\python26 folder to the network drive and have it run on
>> the
>>> server.
>>>
>>> I got around a related issue (http://bugs.python.org/issue4566) just by
>>> upgrading to 2.6.3 and was able to import socket and mpi4py and
>> everything,
>>> except matplotlib and pyMSSQL, that is.
>>>
>>> I also understand that if I were to install the MS Visual Studio 2008
>>> redistribution package on the server that everything would be fine
>> because
>>> the modules just can't find the proper C run-time DLL. The problem with
>> that
>>> is two-fold: I don't have admin rights on the machine and there are over
>>> 1000 machines on the cluster and I don't think the admin is going to
>> install
>>> that on all of them.
>>>
>>> So is there any way to set an environmental variable or something to get
>>> these packages to know where to find the proper msvcr90.dll, akin to
>> setting
>>> LD_LIBRARY_PATH in Linux? Is there another solution?
>>
>> I assume this is related to this new problem:
>>
>>        http://bugs.python.org/issue4120
>>
>> Manifests were meant to solve some of the DLL mess... apparently they
>> cause even more grief.
>>
>> --
>> Marc-Andre Lemburg
>> eGenix.com
>>
>> Professional Python Services directly from the Source  (#1, Oct 08 2009)
>>>>> Python/Zope Consulting and Support ...        http://www.egenix.com/
>>>>> mxODBC.Zope.Database.Adapter ...             http://zope.egenix.com/
>>>>> mxODBC, mxDateTime, mxTextTools ...        http://python.egenix.com/
>> ________________________________________________________________________
>>
>> ::: Try our new mxODBC.Connect Python Database Interface for free ! ::::
>>
>>
>>   eGenix.com Software, Skills and Services GmbH  Pastor-Loeh-Str.48
>>    D-40764 Langenfeld, Germany. CEO Dipl.-Math. Marc-Andre Lemburg
>>           Registered at Amtsgericht Duesseldorf: HRB 46611
>>               http://www.egenix.com/company/contact/
>>
> 

-- 
Marc-Andre Lemburg
eGenix.com

Professional Python Services directly from the Source  (#1, Oct 12 2009)
>>> Python/Zope Consulting and Support ...        http://www.egenix.com/
>>> mxODBC.Zope.Database.Adapter ...             http://zope.egenix.com/
>>> mxODBC, mxDateTime, mxTextTools ...        http://python.egenix.com/
________________________________________________________________________

::: Try our new mxODBC.Connect Python Database Interface for free ! ::::


   eGenix.com Software, Skills and Services GmbH  Pastor-Loeh-Str.48
    D-40764 Langenfeld, Germany. CEO Dipl.-Math. Marc-Andre Lemburg
           Registered at Amtsgericht Duesseldorf: HRB 46611
               http://www.egenix.com/company/contact/



More information about the Python-list mailing list