Résolution d'un problème où IIS ne pouvait pas importer un fichier pyd dans un projet Django

TL;DR https://qrunch.net/@sugurunatsuno/entries/wF9aXWZ3x3PBarLR Ajoutez le répertoire contenant le fichier pyd que vous souhaitez lire dans PYTHONPATH.

introduction

Le fichier pyd ne peut plus être chargé lors de l'exécution d'un projet Django à l'aide d'IIS. Par conséquent, il n'y avait pas de répertoire dans la variable d'environnement PYTHONPATH pouvant faire référence au fichier pyd. Lors de l'exécution sur le serveur d'exécution de Django, le fichier pyd pouvait être importé. Il est supposé qu'IIS fonctionnera sauf pour l'importation de fichiers pyd.

version

OS/Logiciel/Nom de la bibliothèque version
Windows 10
IIS 10
Python 3.8.0
Django 2.2.8
Cython 0.29.15

Lors de la configuration avec IIS

Il ne doit être défini que dans IIS ou Python. Dans IIS, les variables d'environnement peuvent être définies avec web.config, etc. Vous pouvez définir plusieurs chemins séparés par un point-virgule, ajoutez donc le chemin où se trouve le fichier pyd.

<add key="PYTHONPATH" value="project_path;pyd_absolute_path" />

Dans ce cas, l'importation du fichier pyd fait référence à PYTHONPATH, il ne s'agit donc pas d'un chemin relatif du fichier py à appeler.

#Ne peut pas être référencé par un chemin relatif
# from pyd_relative_path import target

#Puisqu'il est défini dans PYTHONPATH, il peut être appelé tel quel
import target

Lors de la configuration sur Python

Il ne doit être défini que dans IIS ou Python. Les variables d'environnement peuvent également être définies sur python, vous pouvez donc définir le répertoire où se trouve le fichier pyd.

import os
import sys

current_dir = os.path.abspath(os.path.dirname(__file__))
sys.path += [os.path.join(current_dir, 'pyd_relative_path')]

import target

Recommended Posts

Résolution d'un problème où IIS ne pouvait pas importer un fichier pyd dans un projet Django
Créer un fichier qui peut être exécuté dans le langage de script
Exécuter un fichier Python avec une importation relative dans PyCharm
Comment référencer des fichiers statiques dans un projet Django
Démarrer un projet Django
[Sublime Text 2] Toujours exécuter un fichier spécifique dans le projet
Comment importer des fichiers où vous le souhaitez en Python
[Note] Importation de fichiers dans le répertoire parent en Python