ValueError: Unbekannte MS Compiler Version 1900

Ich versuche, einige Code mit Python 3.5 auf Windows 10 mit der Verwendung von Cygwin (Mingw) laufen. Um genau zu sein, benutze ich das PyDSTool-Modul, wo ich den Dopri-Integrator nenne. Das Problem ist, ich habe Probleme mit distutils nicht erkennen Microsoft Visual Studio 2015. Gibt es eine Möglichkeit, dies zu vermeiden (ohne zurück zu älteren Versionen von Python, Windows, Visual Studio). Der volle Fehler kann man sehen.

 ValueError Traceback (most recent call last) <ipython-input-16-bfeb915bfd7b> in <module>() 60 print("\n") 61 ---> 62 testODE = Dopri_ODEsystem(DSargs) 63 64 print('Integrating...') C:\Anaconda3\lib\site-packages\PyDSTool\Generator\Dopri_ODEsystem.py in __init__(self, kw) 371 print("stages using the makeLibSource and compileLib methods.") 372 else: --> 373 self.makeLib() 374 375 @property C:\Anaconda3\lib\site-packages\PyDSTool\Generator\mixins.py in makeLib(self, libsources, libdirs, include) 98 self.forceLibRefresh() 99 self.makeLibSource(include) --> 100 self.compileLib(libsources, libdirs) 101 102 @property C:\Anaconda3\lib\site-packages\PyDSTool\Generator\mixins.py in compileLib(self, libsources, libdirs) 78 precompiled libraries.""" 79 ---> 80 self._builder.build(libsources, libdirs, self._compiler) 81 82 def forceLibRefresh(self): C:\Anaconda3\lib\site-packages\PyDSTool\Generator\mixins.py in build(self, libsources, libdirs, compiler) 187 script_args=script_args, 188 ext_modules=[extmod], --> 189 py_modules=[self.modname]) 190 191 def save_vfield(self, code, fname=None): C:\Anaconda3\lib\site-packages\numpy\distutils\core.py in setup(**attr) 167 new_attr['distclass'] = NumpyDistribution 168 --> 169 return old_setup(**new_attr) 170 171 def _check_append_library(libraries, item): C:\Anaconda3\lib\distutils\core.py in setup(**attrs) 146 if ok: 147 try: --> 148 dist.run_commands() 149 except KeyboardInterrupt: 150 raise SystemExit("interrupted") C:\Anaconda3\lib\distutils\dist.py in run_commands(self) 953 """ 954 for cmd in self.commands: --> 955 self.run_command(cmd) 956 957 # -- Methods that operate on its Commands -------------------------- C:\Anaconda3\lib\distutils\dist.py in run_command(self, command) 972 cmd_obj = self.get_command_obj(command) 973 cmd_obj.ensure_finalized() --> 974 cmd_obj.run() 975 self.have_run[command] = 1 976 C:\Anaconda3\lib\site-packages\numpy\distutils\command\build_ext.py in run(self) 115 verbose=self.verbose, 116 dry_run=self.dry_run, --> 117 force=self.force) 118 self.compiler.customize(self.distribution) 119 self.compiler.customize_cmd(self) C:\Anaconda3\lib\site-packages\numpy\distutils\ccompiler.py in new_compiler(plat, compiler, verbose, dry_run, force) 594 raise DistutilsModuleError(("can't compile C/C++ code: unable to find class '%s' " + 595 "in module '%s'") % (class_name, module_name)) --> 596 compiler = klass(None, dry_run, force) 597 log.debug('new_compiler returns %s' % (klass)) 598 return compiler C:\Anaconda3\lib\site-packages\numpy\distutils\mingw32ccompiler.py in __init__(self, verbose, dry_run, force) 56 57 distutils.cygwinccompiler.CygwinCCompiler.__init__ (self, verbose, ---> 58 dry_run, force) 59 60 # we need to support 3.2 which doesn't match the standard C:\Anaconda3\lib\distutils\cygwinccompiler.py in __init__(self, verbose, dry_run, force) 159 # Include the appropriate MSVC runtime library if Python was built 160 # with MSVC 7.0 or later. --> 161 self.dll_libraries = get_msvcr() 162 163 def _compile(self, obj, src, ext, cc_args, extra_postargs, pp_opts): C:\Anaconda3\lib\distutils\cygwinccompiler.py in get_msvcr() 88 # return ['vcruntime140'] 89 else: ---> 90 raise ValueError("Unknown MS Compiler version %s " % msc_ver) 91 92 ValueError: Unknown MS Compiler version 1900 

5 Solutions collect form web for “ValueError: Unbekannte MS Compiler Version 1900”

Distutils und Numpy / Distutils haben derzeit keine Unterstützung für Visual Studio 2015, Visual C ++ 14. Nach den Tipps, die aus dem Python-Bug- Report gezogen wurden , konnte ich die notwendigen Dateien patch und erfolgreich eine Erweiterung mit einer neuen Installation von Python 3.5 von Anaconda und Mingw64 mit GCC 5.2.0 läuft in MSYS2 unter Windows 7. Ich habe kein Visual Studio installiert. Die Lösung war, eine distutils Datei und zwei numpy / distutils Dateien zu patch (falls zutreffend). Diese Patches wurden zur Einbindung in zukünftige Revisionen eingereicht.

Sie können die Patches selbst für eine schnelle Lösung anwenden:

  • Distutils patch
  • Numpy / distutils Patch

AKTUALISIEREN

Bitte beachten Sie, dass während der Patches oben für mich gearbeitet wurde, wurde es nicht für die Aufnahme in Upstream akzeptiert. Die Änderungen, die mit VS 2015 kam, sind komplexer als ich geschätzt habe.

Ich lief auf dem gleichen Problem und stellte fest, dass das Problem mit dem Mingw-Compiler war. Ich habe versucht, die Patches von @tharen vorgeschlagen, aber es hat nicht für mich gearbeitet.

Es scheint, dass Cygwins Lieblings-Compiler für Windows das visuelle C ++ ist, also habe ich nur die visuellen C ++ – Build-Tools von http://landinghub.visualstudio.com/visual-cpp-build-tools heruntergeladen und dann hat es gut geklappt.

Beachten Sie, dass Sie Mingw und alle Referenzen deinstallieren müssen, die Sie in Ihr Projekt aufgenommen haben. Insbesondere musste ich eine Datei distutils.cfg löschen, die ich erstellt hatte, die den folgenden Code hatte, der auf mingw hinweist

 [build] compiler = mingw32 

Ich habe die folgenden Änderungen vorgenommen und es hat für mich mit den folgenden Konfigurationen gearbeitet.

  • OS: Win 7 Prof. SP1 64 Bit
  • CPython 3.6, 64 Bit
  • Mingw 64 (x86_64-7.1.0-posix-seh-rt_v5-rev0)
  • Cython 0,25.2

Ich habe folgendes gemacht

  1. C:\mingw-w64\x86_64-7.1.0-posix-seh-rt_v5-rev0\mingw64\bin in der PATH-Variable hinzu ( C:\mingw-w64\x86_64-7.1.0-posix-seh-rt_v5-rev0\mingw64\bin für mich)
  2. Test durch Öffnen der Befehlszeile und Befehl gcc funktioniert (ich habe keine anderen Compiler)
  3. Erstellen Sie distutils.cfg in C:\Python36\Lib\distutils
  4. Fügen Sie Zeilen in dieser Datei hinzu:

     [build] compiler = mingw32 
  5. Manuelles Anlegen dieses Patches

  6. Manuelles Herunterladen der Datei vcruntime140.dll und Setzen in C:\Python36\libs

Wenn irgendjemand noch dieses Problem hat, bin ich gerade hineingelaufen bei der Installation von yowsup und python-axolotl, das ist, was ich tat, um es zu lösen:

1 Wenden Sie den Patch von Tharen in die Python Cygwinccompiler.py Datei (befindet sich in Ihrem Python-Installationsordner) https://bugs.python.org/file40608/patch.diff

2-Mit mingw, installieren Sie pexports, öffnen Sie ein Terminal im Administrator-Modus und geben Sie Folgendes ein:

 mingw-get install pexports 

2-Gehe zum Python-Installationsordner, in meinem Fall war es C: \ Program Files (x86) \ Python36-32

Immer noch im selben Terminal haben wir Pexports installiert, nach dem Navigieren zum Python-Installationsordner:

 pexports vcruntime140.dll >libs\vcruntime140.def dlltool -dllname vcruntime140.dll --def libs\vcruntime140.def --output-lib libs\libvcruntime140.a 

Dann geh zurück in den Ordner, in dem du die Bibliothek installiert hast, oder was auch immer du zuvor gemacht hast, es sollte jetzt funktionieren.

Btw, vergessen Sie nicht hinzuzufügen

 [build] compiler = mingw32 

In der distutils-datei

Quelle: diese eigene Post und https://bugs.python.org/issue25251

Ich habe gerade die folgenden Änderungen gemacht und es hat wie ein Charme gearbeitet!

Bearbeiten Sie die Datei distutils.cfg an den Standorten:

  1. C: \ Benutzer \\ AppData \ Local \ Continuum \ Anaconda3 \ Lib \ distutils \
  2. C: \ Benutzer \\ AppData \ Lokal \ Continuum \ Anaconda3 \ pkgs \ libpython-2.0-py36_0 \ Lib \ distutils

Ändern Sie den Inhalt von distutils.cfg an:

 [build] compiler=g++ [build_ext] compiler=g++ 

PS Wahrscheinlich nur an zweiter Stelle ändern sollte auch tun.

PPS Stellen Sie sicher, dass gcc installiert ist und sich in PATH befindet. Für mich wurde TDM-GCC-64 installiert

  • Debatte C ++ - Code in Visual Studio von Python-Code läuft in Eclipse
  • Fehler: 'python35_d.dll fehlt' beim Ausführen von C ++ - Code mit Python in MS Visual Studio 2015
  • Python 3.6 in Visual Studio 2017 Wie man Programm in der interaktiven Shell ausführt
  • Welche Python IDE hat visuelle Studio-Features?
  • Kann nicht kompensieren openssl wegen 'cl' wird nicht erkannt
  • Kann Pip mit Python Tools in Visual Studio verwendet werden?
  • Einstellen von UAC auf requireAdministrator mit PyInstaller onefile Option und Manifest
  • Installieren von Python-Tools für Visual Studio 2012 (PTVS)
  • Visual Studio - NameError: name 'Tk' ist nicht definiert
  • Python-Datei schließt sofort in MS Visual Studio 2015
  • Vcvarsall.bat kann nicht mit Python 3.3 unter Windows 8 gefunden werden
  • Python ist die beste Programmiersprache der Welt.