4
votes

`Impossible d'ouvrir le fichier d'inclusion: 'apr_perms_set.h'` lorsque vous faites` pip install mod_wsgi`

J'essaye de déployer un environnement Django de production sur Windows 10 avec Apache 2.4.37 x64 OpenSSL 1.1.1 VC14 d'ApacheHaus . Cependant, en suivant ces instructions , j'obtiens l'erreur suivante:

  C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\bin\HostX86\x64\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -ID:/Servers/Web/Apache/Apache24/include -Ic:\programs\python37\include -Ic:\programs\python37\include "-IC:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\ATLMFC\include" "-IC:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\include" "-IC:\Program Files (x86)\Windows Kits\NETFXSDK\4.6.1\include\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\shared" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\winrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\cppwinrt" /Tcsrc/server\mod_wsgi.c /Fobuild\temp.win-amd64-3.7\Release\src/server\mod_wsgi.obj
  mod_wsgi.c
  d:\servers\web\apache\apache24\include\apr_network_io.h(29): fatal error C1083: Cannot open include file: 'apr_perms_set.h': No such file or directory
  error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\Community\\VC\\Tools\\MSVC\\14.16.27023\\bin\\HostX86\\x64\\cl.exe' failed with exit status 2

  ----------------------------------------
  Failed building wheel for mod-wsgi

Je vois les options suivantes pour le compilateur C / C ++: -ID: / Servers / Web / Apache / Apache24 / include -Ic: \ programmes \ python37 \ include . Il semble donc que le fichier d'inclusion apr_perms_set.h soit absent d'Apache ou de Python.

Comment corriger cette erreur avec les versions correctes des fichiers d'inclusion? J'ai bien peur que ce ne soit pas bien de prendre simplement la dernière version d'un référentiel car elle peut ne pas correspondre à ce qu'attendent Apache ou mod-wsgi.


1 commentaires

apr signifie Apache Portable (C) Runtime, c'est donc le côté où il devrait exister, pas Python. Voyez si vous pouvez le trouver sur le disque dans le A inclut du tout ...


3 Réponses :


0
votes

Vous pouvez télécharger le fichier manquant depuis Github et le copier dans le répertoire

C:/Apache24/include


1 commentaires

quel github? Ce n'est pas si utile!



3
votes

J'ai eu une erreur similaire sur Windows Server 2016, en essayant d'utiliser Apache 2.4 64bit avec Python 2.7. Apparemment, les fichiers d'en-tête apr étaient manquants. J'ai pu le résoudre en:

  • en m'assurant que j'ai à la fois Apache et Python 64 bits (je suppose que ce sera valide pour 32 bits également) en installant VC ++ Redistribuable - bien sûr 64 bits dans mon cas
  • téléchargement des en-têtes Apache Runtime (apr) à partir du site Web du projet APR
  • copie du fichier d'en-tête manquant à partir des sources téléchargées dans le dossier include d'Apache
  • installation de mod_wsgi avec pip install mod_wsgi (dans mon environnement virtuel).

2 commentaires

J'ai copié le fichier manquant (apr_perms_set.h) des fichiers téléchargés Apache Runtime dans le dossier c: / apache24 / include , puis exécuté py setup.py install à partir du dossier mod_wsgi


Billet ouvert ici bz.apache.org/bugzilla/show_bug.cgi?id=64304



2
votes

La distribution de The Apache Haus n'inclut pas le fichier d'en-tête mentionné ci-dessus pour une raison étrange. Essayez d'utiliser la distribution de Apache Lounge , elle doit contenir tous les fichiers d'en-tête nécessaires pour compiler mod_wsgi (testé avec httpd-2.4.41-win32-VS16.zip).


1 commentaires

Cela a fonctionné pour moi. Ils doivent inclure ces en-têtes. L'intérêt de distribuer un binaire est la commodité!