2017-06-18 1 views
-1
C:\Users\AliAbbas\Google Drive\Work\J.E.S.S\Cython\Code>python setup.py build_ex 
t -i --compile=mingw32 -DMS_WIN64 
running build_ext 
Traceback (most recent call last): 
    File "setup.py", line 4, in <module> 
    setup(ext_modules = cythonize("HelloWorld.pyx")) 
    File "C:\Program Files\Python35\lib\distutils\core.py", line 148, in setup 
    dist.run_commands() 
    File "C:\Program Files\Python35\lib\distutils\dist.py", line 955, in run_comma 
nds 
    self.run_command(cmd) 
    File "C:\Program Files\Python35\lib\distutils\dist.py", line 974, in run_comma 
nd 
    cmd_obj.run() 
    File "C:\Program Files\Python35\lib\distutils\command\build_ext.py", line 308, 
in run 
    force=self.force) 
    File "C:\Program Files\Python35\lib\distutils\ccompiler.py", line 1031, in new 
_compiler 
    return klass(None, dry_run, force) 
    File "C:\Program Files\Python35\lib\distutils\cygwinccompiler.py", line 282, i 
n __init__ 
    CygwinCCompiler.__init__ (self, verbose, dry_run, force) 
    File "C:\Program Files\Python35\lib\distutils\cygwinccompiler.py", line 157, i 
n __init__ 
    self.dll_libraries = get_msvcr() 
    File "C:\Program Files\Python35\lib\distutils\cygwinccompiler.py", line 86, in 
get_msvcr 
    raise ValueError("Unknown MS Compiler version %s " % msc_ver) 
ValueError: Unknown MS Compiler version 1900 

J'ai essayé de compiler ce code pendant quelques jours maintenant, et après plusieurs erreurs, je suis arrivé ici et je n'ai aucune idée de ce qu'il faut faire ensuite. Je l'ai déjà installé MingW32 et ne sais pas quoi faireCython Compiling Error

que je suis le livre de O'Reilly sur cython, en utilisant des fenêtres 8.1, et ont essayé de Python 3.6.1 et 3.5.1

+0

Ce genre de chose est toujours difficile à configurer ou à diagnostiquer à distance - souvent la meilleure solution est d'utiliser une distribution Python qui a toutes les bibliothèques et un compilateur mis en place. J'ai moi-même utilisé WinPython (bien que je pense que 3.6 pourrait ne pas fonctionner avec mingw sur n'importe quelle distribution). Si vous ne voulez pas faire cela, vous devez fournir plus de détails sur ce que vous avez exactement installé et où (autant d'informations que possible). En outre, je ne suis pas sûr si Python Mingw32 et 64 bits peuvent fonctionner ensemble - avez-vous vérifié? – DavidW

+0

@DavidW Je l'ai essayé avec une distribution MinGW 64 bits (mingw-w64, je pense que c'est proche), commuté à WinPy 3.5.3 à partir de Python 3.6 et après avoir écrit ceci: 'C: \ Users \ AliAbbas \ Google Lecteur \ Travail \ JESS \ Cython \ Code> python setup.py build_ex t -i --compiler = mingw32 -DMS_WIN64' J'ai eu la même erreur que lors du premier essai lorsque j'ai utilisé Cython pour la première fois : 'TypeError: types unorderable: NoneType()> = str()' Je ne sais pas quoi faire maintenant Merci pour votre aide! :) –

+0

L'autre chose que j'essayerais est de le faire sans le bit '--compiler = mingw32' de la ligne (il devrait choisir le compilateur automatiquement). A part ça, je ne sais pas - désolé! – DavidW

Répondre

0

Vous utilisez Python 3.5 vous êtes-vous assuré que vous utilisez le compilateur qui correspond à ce qui a été construit avec Python? Une recherche google devrait trouver cela assez rapidement. La communauté Visual Studio 2015 est adaptée à la plupart des versions de Windows. Je vois dans votre message que vous essayez aussi Linux qui serait une variante de GCC très probablement.

+0

Eh bien, j'ai Visual Studio 2017 installé, et il devrait avoir compilateur C++ installé à droite? Si non, alors comment puis-je vérifier cela? –

+0

@AliAbbas si vous avez (C) Python 3.5 pour Windows alors vous devez utiliser Visual Studio 2015. Comme je l'ai mentionné, utilisez la version communautaire et il vous donnera une invite de commande développeur dans vos menus déroulants Windows qui devrait charger tous les VS requis Bibliothèques 2015 pour votre build. Like 'MSBuild Invite de commandes pour Visual Studio 2015' – Matt

+0

Vous pouvez aussi taper:' import sys' suivi de 'print (sys.version)' et il devrait vous indiquer le compilateur pour votre Python que vous utilisez. – Matt