Open 287d7d53-2849-4e84-8368-48c7a1cccce6 opened 13 years ago
I have recently attempted to install a couple third party packages (zope.interface and dulwech, FWIW) and encountered great difficulties. In particular, the setup complained that it could not find "vcvarsall.bat". Even running these setup scripts from a VC++ 2010 Express command shell gave the error.
Through browsing this bug database, specifically bugs 5235, 7511, and 2513, I have determined that the 'official' python.org binary is built with either VS 2008 or VS 2008 Express, I'm not sure which yet, but it does not really matter.
Setting DISTUTILS_USE_SDK and MSSdk to 1 and manually running the script, as suggested in one of the bug reports, does get by the issue of finding "vcvarsall.bat". As one might guess, this only results in a confusing error message during compilation (c1010070, "Failed to load and parse the manifest"), presumably because vs2008 binaries are not compatible with vs2010 output files.
This bug isn't so much about the incompatibility as to the difficulty in diagnosing the issue. It seems that trying to figure out which VS was used to compile a particular version of python is stored within a puzzle of bug reports. Could this be listed on the download page, e.g.:
http://www.python.org/download/releases/2.6.6/
? Of course, it would be ideal if multiple binaries existed, so that someone in my position could say, "Oh, I don't even have 2008 installed; I should go with the 2010-compiled version", or vice-versa. In the absence of that, simply knowing which version I'll need for extension modules is nice.
If I understand correctly (I'm not a windows user or developer myself), knowing the bits necessary to compile extension modules is not something very many people need to know. If an extension module supports Windows, there will generally be an installer package containing the binaries available. If there isn't, chances are the extension module doesn't support Windows.
That said, improvements in the documentation is rarely a bad idea ;)
A quick look with Dependency Walker gives me the following:
Python 2.4,2.5 -- MSVC .NET 2003 (7.1) Python 2.6,2.7,3.0,3.1 -- MSVC 2008 (9.0)
Note these are only for the official python.org builds. Each version can also be built using other MSVC versions. To the best of my knowledge Python 3.2 will also be built using MSVC 2008 as 2010 support hasn't been discussed yet.
There's a table here https://docs.python.org/X/using/windows.html#compiling-python-on-windows which shows what versions you need, where X can be 2 or 3.
Note: these values reflect the state of the issue at the time it was migrated and might not reflect the current state.
Show more details
GitHub fields: ```python assignee = None closed_at = None created_at =
labels = ['type-feature', 'docs']
title = 'vs version for win32 compilation of extension modules is undocumented.'
updated_at =
user = 'https://bugs.python.org/tfogal'
```
bugs.python.org fields:
```python
activity =
actor = 'BreamoreBoy'
assignee = 'docs@python'
closed = False
closed_date = None
closer = None
components = ['Documentation']
creation =
creator = 'tfogal'
dependencies = []
files = []
hgrepos = []
issue_num = 10175
keywords = []
message_count = 4.0
messages = ['119410', '119412', '119413', '222773']
nosy_count = 5.0
nosy_names = ['jkloth', 'tfogal', 'r.david.murray', 'brian.curtin', 'docs@python']
pr_nums = []
priority = 'normal'
resolution = None
stage = None
status = 'open'
superseder = None
type = 'enhancement'
url = 'https://bugs.python.org/issue10175'
versions = ['Python 2.7', 'Python 3.4', 'Python 3.5']
```