Author: Matti Picus <[email protected]>
Branch:
Changeset: r88162:12160ae9198a
Date: 2016-11-06 20:48 +0200
http://bitbucket.org/pypy/pypy/changeset/12160ae9198a/
Log: hack to let setuptools find the msvc compiler (maybe), document
Windows 10 experience
diff --git a/pypy/doc/windows.rst b/pypy/doc/windows.rst
--- a/pypy/doc/windows.rst
+++ b/pypy/doc/windows.rst
@@ -20,6 +20,22 @@
.. _our downloads: http://pypy.org/download.html
+Installing Visual Compiler v9 (for Python 2.7)
+----------------------------------------------
+
+This compiler, while the standard one for Python 2.7, is depricated. Microsoft
has
+made it available as the `Microsoft Visual C++ Compiler for Python 2.7`_ (the
link
+was checked in Nov 2016). Note that the compiler suite will be installed in
+``C:\Users\<user name>\AppData\Local\Programs\Common\Microsoft\Visual C++ for
Python``.
+Using a current version of ``setuptools`` will be able to find it there. For
+Windows 10, you must right-click the download, and under ``Properties`` ->
+``Compatibility`` mark it as ``Run run this program in comatibility mode for``
+``Previous version...``. Also, you must download and install the ``.Net
Framework 3.5``,
+otherwise ``mt.exe`` will silently fail. Installation will begin automatically
+by running the mt.exe command by hand from a DOS window (that is how the author
+discovered the problem).
+
+.. _Microsoft Visual C++ Compiler for Python 2.7:
https://www.microsoft.com/en-us/download/details.aspx?id=44266
Translating PyPy with Visual Studio
-----------------------------------
diff --git a/rpython/translator/platform/windows.py
b/rpython/translator/platform/windows.py
--- a/rpython/translator/platform/windows.py
+++ b/rpython/translator/platform/windows.py
@@ -35,18 +35,27 @@
return _get_compiler_type(cc, True)
def _get_msvc_env(vsver, x64flag):
+ vcvars = None
try:
toolsdir = os.environ['VS%sCOMNTOOLS' % vsver]
except KeyError:
- return None
+ # try to import from the "Microsoft Visual C++ Compiler for Python 2.7"
+ try:
+ import setuptools
+ except ImportError:
+ return None
+ # XXX works for 90 but is it generalizable?
+ toolsdir = ''
+ vcvars = setuptools.msvc.msvc9_find_vcvarsall(vsver/10)
- if x64flag:
- vsinstalldir = os.path.abspath(os.path.join(toolsdir, '..', '..'))
- vcinstalldir = os.path.join(vsinstalldir, 'VC')
- vcbindir = os.path.join(vcinstalldir, 'BIN')
- vcvars = os.path.join(vcbindir, 'amd64', 'vcvarsamd64.bat')
- else:
- vcvars = os.path.join(toolsdir, 'vsvars32.bat')
+ if not vcvars:
+ if x64flag:
+ vsinstalldir = os.path.abspath(os.path.join(toolsdir, '..', '..'))
+ vcinstalldir = os.path.join(vsinstalldir, 'VC')
+ vcbindir = os.path.join(vcinstalldir, 'BIN')
+ vcvars = os.path.join(vcbindir, 'amd64', 'vcvarsamd64.bat')
+ else:
+ vcvars = os.path.join(toolsdir, 'vsvars32.bat')
import subprocess
try:
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit