tomzhang / pythonxy

Automatically exported from code.google.com/p/pythonxy
0 stars 0 forks source link

h5py-version depends on a conflicting Visual Studio redistributable package #765

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
If relevant, please answer to the following questions:
1. What version of Python(x,y) have you installed?

    2.7.9.0

2. Which components have you installed (Python(x,y) installer:
componentpage):

    "Full" installation

Whatplugins?

3. Have you selected the option "Customize installation directories"?

    No

4. If the answer to 3. is yes, what installation directories have you
chosen?

5. Where did you install Python(x,y) itself?

    default path

6. Have you installed Python(x,y):

    For "All users"

7. What is your operating system?

    Windows 7
    Windows 8.1

8. Is the operating system 64 bit?

    Yes

9. When you installed Python(x,y), were you logged in as :

    administrator of the machine

10. If you are using Windows Vista/7, have you installed Python(x,y):

    simply by double-clicking on the installer

11. Regarding installed software on your machine, how did you clean your
machine before installing Python(x,y)  (multiple answers are possible):

    I didn't do anything, installed Python(x,y) directly

What steps will reproduce the problem?
Bundle an application depending on h5py with py2exe and try to run it on a 
clean machine where you don't have admin privileges. The executable should be 
single file runnnig as portable app, i.e. there should be no additional 
dependencies/software installations required. Visual Studio runtime dlls are 
bundled inside the executable. The app will crash with Windows side-by-side 
configuration error.

Background:

The h5py version shipping with python(x,y) requires the vc redistributable 
package version 9.0.30729.6161 whereas the python interpreter and all other 
binary libs require 9.0.21022.8.

Simple fix is to install the matching redistributable package on the target 
machine - requires admin privileges and an additional file to ship and 
therefore no option.

Next attempt was to use manifest files pointing at the right versions. I 
finally managed to get around all python and DLL-import related errors, however 
the app chrashed with some ntdll.dll error.

Solution:

Use h5py from pypi which was compiled against the correct vc redistributable 
package. So I suggest to ship that version with python(x,y).

Sebastian

Original issue reported on code.google.com by sebavo...@googlemail.com on 9 Feb 2015 at 11:10

GoogleCodeExporter commented 9 years ago
Thank you for your efforts!

I've confirmed this - the only DLLs with runtime version are the H5HDF ones.

Unfortunately using the "official" binaries is not an option due to many 
reasons. I'll try to fix this issue ASAP.

Original comment by grizzly.nyo on 11 Feb 2015 at 7:01

GoogleCodeExporter commented 9 years ago
Found the cause - the project in its great wisdom put 

_BIND_TO_CURRENT_VCLIBS_VERSION=1

Into the project which caused the wrong VC runtime to be bound.

Original comment by grizzly.nyo on 12 Feb 2015 at 6:46

GoogleCodeExporter commented 9 years ago
Ah I see. Thanks for resolving this issue that fast!
Am 12.02.2015 19:46 schrieb <pythonxy@googlecode.com>:

Original comment by sebavo...@googlemail.com on 12 Feb 2015 at 6:54