Cython- Kann die Include-Datei nicht öffnen: 'io.h': Keine solche Datei oder Verzeichnis

9

Ich fange einfach an Cython zu lernen. Ich habe versucht, eine einfache .pyx-Datei zu kompilieren.

%Vor%

Hier ist meine setup.py:

%Vor%

Dann führe ich den Befehl aus.

%Vor%

Der Fehler wie unten. Ich habe es schwer, es zu googeln und nichts hilfreiches kam zu mir.

%Vor%

Kann mir bitte jemand helfen, den Fehler zu beheben?

Ich habe Anaconda3 4.1.1, Python 3.5 und Visual Studio Express 2015 installiert.

Es ist wirklich frustrierend ...

    
user2869934 13.10.2016, 10:25
quelle

5 Antworten

9

Falls irgendjemand diesen Thread findet und nach einer schnelleren Lösung als nach Neuinstallation von VS und / oder Anaconda sucht, konnte ich den gleichen Fehler durch Definition der Umgebungsvariablen INCLUDE , die auf den Speicherort verweist, umgehen of io.h - dem VS-Compiler erlauben, den Header zu finden.

In meinem Setup, das VS2015 verwendet, bedeutet die Änderung der Verwendung der universellen CRT, dass der Speicherort von io.h C:\Program Files (x86)\Windows Kits\Include\<version>\ucrt ist. Für verschiedene Versionen / Umgebungen kann der Speicherort von io.h abweichen.

    
Calum Atkinson 25.11.2016 17:42
quelle
6

Microsoft bemüht sich nicht, Konsolenentwicklungsschritte offensichtlich zu machen. Visual Studio wurde lange Zeit mit einigen Stapeldateien gepackt, um Umgebungsvariablen zu erstellen. Wenn in VS2015 / 2017 die C ++ - CLI-Entwicklungsoptionen ausgewählt sind, werden dem Startmenü eine oder mehrere Verknüpfungen zum Ausführen dieser Stapeldateien hinzugefügt.

Für VS 2017 rufen die verschiedenen Batch-Dateien alle auf:

%Vor%

mit spezifischen Parametern.

Anstatt eine System- oder Benutzerumgebungsvariable zu setzen, ist es besser, die spezifische Batch-Datei aufzurufen, um Ihre Build-Anforderungen zu erfüllen.

%Vor%

oder

%Vor%

Eine Sache, die bei Python / Ruby / etc zu beachten ist, ist, dass Scripts oft die ausführende Shell in die Administratorrolle bringen müssen, um Pakete zu installieren. Wenn Sie die Batch-Datei in einer Nicht-Administrator-Shell ausführen und die Paketinstallation eine Erhöhung erfordert, wird eine Subshell erzeugt, die keine Umgebungsvariablen enthält. Daher sollten Sie die Batch-Datei in einer Administrator-Shell ausführen, bevor Sie den Paket-Manager oder das Skript aufrufen.

    
Justin Kirk 29.03.2017 16:10
quelle
5
___ answer43098806 ___

Microsoft bemüht sich nicht, Konsolenentwicklungsschritte offensichtlich zu machen. Visual Studio wurde lange Zeit mit einigen Stapeldateien gepackt, um Umgebungsvariablen zu erstellen. Wenn in VS2015 / 2017 die C ++ - CLI-Entwicklungsoptionen ausgewählt sind, werden dem Startmenü eine oder mehrere Verknüpfungen zum Ausführen dieser Stapeldateien hinzugefügt.

Für VS 2017 rufen die verschiedenen Batch-Dateien alle auf:

%Vor%

mit spezifischen Parametern.

Anstatt eine System- oder Benutzerumgebungsvariable zu setzen, ist es besser, die spezifische Batch-Datei aufzurufen, um Ihre Build-Anforderungen zu erfüllen.

%Vor%

oder

%Vor%

Eine Sache, die bei Python / Ruby / etc zu beachten ist, ist, dass Scripts oft die ausführende Shell in die Administratorrolle bringen müssen, um Pakete zu installieren. Wenn Sie die Batch-Datei in einer Nicht-Administrator-Shell ausführen und die Paketinstallation eine Erhöhung erfordert, wird eine Subshell erzeugt, die keine Umgebungsvariablen enthält. Daher sollten Sie die Batch-Datei in einer Administrator-Shell ausführen, bevor Sie den Paket-Manager oder das Skript aufrufen.

    
___ qstntxt ___

Ich fange einfach an Cython zu lernen. Ich habe versucht, eine einfache .pyx-Datei zu kompilieren.

%Vor%

Hier ist meine setup.py:

%Vor%

Dann führe ich den Befehl aus.

%Vor%

Der Fehler wie unten. Ich habe es schwer, es zu googeln und nichts hilfreiches kam zu mir.

%Vor%

Kann mir bitte jemand helfen, den Fehler zu beheben?

Ich habe Anaconda3 4.1.1, Python 3.5 und Visual Studio Express 2015 installiert.

Es ist wirklich frustrierend ...

    
___ qstnhdr ___ Cython- Kann die Include-Datei nicht öffnen: 'io.h': Keine solche Datei oder Verzeichnis ___ answer40810172 ___

Falls irgendjemand diesen Thread findet und nach einer schnelleren Lösung als nach Neuinstallation von VS und / oder Anaconda sucht, konnte ich den gleichen Fehler durch Definition der Umgebungsvariablen INCLUDE , die auf den Speicherort verweist, umgehen of io.h - dem VS-Compiler erlauben, den Header zu finden.

In meinem Setup, das VS2015 verwendet, bedeutet die Änderung der Verwendung der universellen CRT, dass der Speicherort von io.h %VS140COMNTOOLS% ist. Für verschiedene Versionen / Umgebungen kann der Speicherort von io.h abweichen.

    
___ antwort43998080 ___

Ich stolperte über das gleiche Problem - mit sehr ähnlicher Konfiguration wie bei Ihnen (einziger Unterschied: VS 2015 Pro). Nach ein paar Wochen, in denen ich nur Räder von anderen Leuten herunterladen musste (zB Ссылка ), fand ich endlich eine Lösung was für mich funktioniert.

Es gibt 2 Probleme. Problem 1 - Sie müssen "Developer Command Prompt" verwenden - manchmal gibt es ein solches Programm im Startmenü, dann verwenden Sie es einfach.

(BTW, für andere: Python 3.5 benötigt VS2015, keine andere Version. Community edition ist OK)

Wenn nicht, können Sie das folgende Snippet (in der Befehlszeile) verwenden:

%Vor%

oder sogar:

%Vor%

(Ich habe es in einer Batch-Datei, um meine Build-Umgebung auszuführen)

(Wenn Sie die Variable %code% nicht haben, dann haben Sie vielleicht den VS installiert und Sie müssen zum Beispiel neu starten, damit neue Umgebungsvariablen sichtbar werden).

Jetzt erhalten Sie den Fehler:

%Vor%

(wie in Ihrer bearbeiteten Antwort)

So jetzt laufen:

%Vor%

OK, jetzt erhalten Sie den Fehler:

%Vor%

Was jetzt? Sie müssen Bibliotheks-Verzeichnisse hinzufügen:

%Vor%

Diesmal keine Fehler:

%Vor%

TL; DR - das Ganze:

%Vor%     
___ tag123python ___ Python ist eine dynamische und stark typisierte Programmiersprache, die die Usability betont. Zwei ähnliche, aber größtenteils inkompatible Versionen von Python sind weit verbreitet (2 und 3). Wenn Sie eine versionsspezifische Python-Frage haben, sollten Sie die Tags [python-2.7] oder [python-3.x] zusätzlich zum Tag [python] verwenden. Wenn Sie eine Python-Variante wie jython, pypy, iron-python usw. verwenden, kennzeichnen Sie diese bitte entsprechend. ___ tag123cython ___ Cython ist eine Obermenge der Python-Sprache zum schnellen Erzeugen von Python C-Erweiterungen. ___ answer47211635 ___

Ich hatte das gleiche Problem, löste es durch die Installation von Windows 10 SDK.

    
___ answer47523617 ___

Ich habe den gleichen Fehler beim Installieren von %code% erhalten und dieses Problem behoben, indem ich %code% in %code% ausgeführt und sichergestellt habe, dass VC ++ - Tools installiert sind.

    
___
Tomasz Gandor 16.05.2017 09:51
quelle
0

Ich hatte das gleiche Problem, löste es durch die Installation von Windows 10 SDK.

    
Amr Ashraf 09.11.2017 21:14
quelle
0

Ich habe den gleichen Fehler beim Installieren von pyshark erhalten und dieses Problem behoben, indem ich pip install pyshark in Developer Command Prompty for VS 2017 ausgeführt und sichergestellt habe, dass VC ++ - Tools installiert sind.

    
Kcvin 28.11.2017 03:39
quelle

Tags und Links