У меня проблема с запуском моего bat-файла или я использую программу на python (Django).
Вот сообщение об ошибке во время выполнения:
Traceback (most recent call last):
File "chemin\import_engagementD.py", line 5, in <module>
from postes.models import EngagementD
ImportError: No module named 'postes'
FIN du Scripthere
Вот моя batfile:
@ECHO OFF
ECHO Script en cours
python chemin\import_engagementD.py
ECHO FIN du Script
pause
И, наконец, дерево моего проекта:
Изображение
Вот мой файл import_engagementD.py:
import os
import csv
import django.model
from django.core.management import BaseCommand
from django.conf import settings
from postes.models import EngagementD
from pprint import pprint
import unicodedata
class Command(BaseCommand):
help = "Commande d'importation automatique de Engagement"
# A command must define handle()
def handle(self, *args, **options):
# Si vous utilisez des chemins relatifs, Django risque de ne pas trouver votre fichier lignes.csv
# Partez toujours de settings.BASE_DIR qui est la racine de votre projet
cheminRegion = os.path.join(settings.BASE_DIR, "postes/management/commands/Donnees/TableauEngDistribparRegion.csv")
cheminGMR = os.path.join(settings.BASE_DIR, "postes/management/commands/Donnees/TableauEngDistribparGMR.csv")
compteurRegion = 0
compteurGMR = 0
with open(cheminRegion) as csvfile:
lignes = csv.reader(csvfile, delimiter=',', quotechar='"')
for ligne in lignes:
# utiliser get_or_create pour éviter de recréer des lignes qui existent déjà
# Utilisation d'un compteur pour recuperer les lignes nécessaire
if(compteurRegion >= 1 and compteurRegion < 9):
print(compteurRegion)
pprint(ligne)
if (ligne[0] == "Total"):
ligne = EngagementD.objects.get_or_create(tauxNA=ligne[7][:-1].replace(",", "."), tauxA=ligne[5][:-1].replace(",", "."), tauxD=ligne[3][:-1].replace(",", "."), region="France")
else:
ligne = EngagementD.objects.get_or_create(tauxNA=ligne[7][:-1].replace(",", "."), tauxA=ligne[5][:-1].replace(",", "."), tauxD=ligne[3][:-1].replace(",", "."), region=unicodedata.normalize('NFKD', (ligne[0]).encode('ASCII','ignore').decode('UTF-8')))
compteurRegion+=1
with open(cheminGMR) as csvfile:
lignes = csv.reader(csvfile, delimiter=',', quotechar='"')
for ligne in lignes:
# utiliser get_or_create pour éviter de recréer des lignes qui existent déjà
# Utilisation d'un compteur pour recuperer les lignes nécessaire
if(compteurGMR >= 1 and compteurGMR < 31):
pprint(compteurGMR)
pprint(ligne)
ligne, created = EngagementD.objects.get_or_create(tauxNA=ligne[8][:-1].replace(",","."), tauxA=ligne[6][:-1].replace(",","."), tauxD=ligne[4][:-1].replace(",","."), gmr=unicodedata.normalize('NFKD', (ligne[1][4:len(ligne[1])])).encode('ASCII', 'ignore').decode('UTF-8').replace(" ", ""))
compteurGMR+=1