python ValueError: अज्ञात MS Compiler संस्करण 1900




visual-studio cygwin (6)

मैं साइबरफ़ोन (mingw) के उपयोग के साथ विंडोज 10 पर पायथन 3.5 के साथ कुछ कोड चलाने की कोशिश कर रहा हूं। सटीक होने के लिए मैं PyDSTool मॉड्यूल का उपयोग कर रहा हूं, जहां मैं डोप्री इंटीग्रेटर कहता हूं। समस्या यह है, मैं Microsoft Visual Studio 2015 को नहीं पहचानने वाले distutils परेशान हूं। क्या इससे बचने का कोई तरीका है (बिना पुराने संस्करणों के पायथन, विंडोज, विजुअल स्टूडियो में वापस जाने के लिए)। फुल एरर को बोल्ड देखा जा सकता है।

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 

https://code.i-harness.com


अगर किसी को अभी भी यह समस्या है, तो मैं सिर्फ yowsup और python-axolotl को इंस्टॉल करते समय उसमें चला गया, यही मैंने इसे हल करने के लिए किया:

1- थ्रेन से पैच को अजगर साइगविनकोम्पाइलरहोम फ़ाइल (आपके पायथन इंस्टॉलेशन फ़ोल्डर में स्थित) https://bugs.python.org/file40608/patch.diff पर लागू करें

2-मिंगव के साथ, pexports स्थापित करें, व्यवस्थापक मोड में एक टर्मिनल खोलें और टाइप करें:

mingw-get install pexports

2-अजगर स्थापित फ़ोल्डर पर जाएं, मेरे मामले में यह C: \ Program Files (x86) \ Pyth3636-32 था

अभी भी एक ही टर्मिनल में हम pexports स्थापित करते थे, अजगर को स्थापित करने के बाद फ़ोल्डर स्थापित करने के लिए निम्नलिखित चलाएँ:

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

फिर उस फ़ोल्डर पर वापस जाएं जहां आप लाइब्रेरी स्थापित कर रहे थे, या जो भी आप पहले कर रहे थे, वह अब काम करना चाहिए।

btw, जोड़ने के लिए मत भूलना

[build]
compiler = mingw32 

डिस्टुटिल्स फ़ाइल में।

स्रोत: यह अपनी पोस्ट और report


डिस्टुटिल्स और नेम्पी / डिस्ट्यूटिल्स के पास वर्तमान में विजुअल स्टूडियो 2015, विजुअल C ++ 14. के लिए समर्थन नहीं है। पायथन बग report से लिए गए सुझावों के बाद, मैं आवश्यक फाइलों को पैच करने में सक्षम था और एनाकोंडा और पायथन 3.5 3.5 के एक नए इंस्टॉलेशन का उपयोग करके सफलतापूर्वक एक्सटेंशन का निर्माण किया। मिंगवि 64 जीसीसी 5.2.0 के साथ विंडोज 7 पर एमएसवाईएस 2 के भीतर चल रहा है। मेरे पास विजुअल स्टूडियो स्थापित नहीं है। इसका समाधान एक डिस्टुटिल फाइल और दो सुपी / डिस्टुटिल फाइल (यदि यह लागू होता है) को पैच करना था। ये पैच भविष्य के संशोधनों में शामिल करने के लिए प्रस्तुत किए गए हैं।

आप पैच को तुरंत ठीक करने के लिए स्वयं लगा सकते हैं:

अपडेट करें

कृपया ध्यान दें कि जबकि ऊपर के पैच मेरे लिए काम करते थे, इसे अपस्ट्रीम में शामिल करने के लिए स्वीकार नहीं किया गया था। वीएस 2015 के साथ जो बदलाव आए, वे मेरी तुलना में अधिक जटिल हैं।


मैं उसी समस्या पर चल रहा था और यह पता लगा रहा था कि यह मुद्दा मिंगव कंपाइलर के साथ था। मैंने @tharen द्वारा सुझाए गए पैच की कोशिश की, लेकिन यह मेरे लिए काम नहीं किया।

ऐसा लगता है कि विंडोज़ के लिए साइबरविन का पसंदीदा संकलक दृश्य c ++ है इसलिए मैंने http://landinghub.visualstudio.com/visual-cpp-build-tools से बस दृश्य c ++ बिल्ड टूल डाउनलोड किया और फिर यह ठीक काम किया।

ध्यान दें कि आपको अपनी परियोजना में शामिल किए गए मिंगव और इसके सभी संदर्भों की स्थापना रद्द करनी होगी। विशेष रूप से मुझे एक distutils.cfg फ़ाइल को हटाना पड़ा जो मैंने बनाई थी जिसमें निम्न कोड था जो कि मिंगव की ओर इशारा करता था

[build]
compiler = mingw32

मैंने निम्नलिखित परिवर्तन किए और इसने मेरे लिए निम्नलिखित विन्यासों के साथ काम किया।

  • OS: विन 7 प्रो। SP1 64 बिट
  • सीपीथॉन 3.6, 64 बिट
  • मिंगव 64 (x86_64-7.1.0-posix-seh-rt_v5-rev0)
  • साइथन 0.25.2

मैंने निम्नलिखित किया

  1. PATH चर में mingw जोड़ें ( C:\mingw-w64\x86_64-7.1.0-posix-seh-rt_v5-rev0\mingw64\bin मेरे लिए)
  2. कमांड लाइन और कमांड gcc वर्क्स खोलने से परीक्षण (मेरे पास कोई अन्य संकलक नहीं है)
  3. C:\Python36\Lib\distutils बनाएं
  4. उस फ़ाइल में लाइनें जोड़ें:

    [build]
    compiler = mingw32
  5. मैन्युअल रूप से इस पैच को लागू करना

  6. फ़ाइल vcruntime140.dll को मैन्युअल रूप से डाउनलोड करके C:\Python36\libs

मैंने सिर्फ बदलाव के बाद उसे बनाया और यह एक आकर्षण की तरह काम किया!

स्थानों में मौजूद फ़ाइल distutils.cfg संपादित करें:

  1. C: \ Users AppData \ Local \ सातत्य \ Anaconda3 \ लिब \\ \ distutils \
  2. C: \ Users AppData \ Local \ सातत्य \\ \ Anaconda3 \ pkgs \ libpython-2.0-py36_0 \ लिब \ distutils

Distutils.cfg की सामग्री को इसमें संशोधित करें:

[build]
compiler=g++

[build_ext]           
compiler=g++

PS शायद केवल 2 वें स्थान पर बदलते हुए भी करना चाहिए।

PPS सुनिश्चित करें कि gcc स्थापित है और PATH में है। मेरे लिए, TDM-GCC-64 स्थापित किया गया था


link में विवरण ने मुझे एक आकर्षण की तरह हल करने में मदद की।

बस get_msvcr() टिप्पणी की।

( else टिप्पणी भी याद रखें)





distutils