اذهب إلى المحتوى
  • 0

خطأ في مشروع دجانغو Could not find the GDAL library

Zeina Almakdisi

السؤال

يظهر خطأ عند التنفيذ    raise ImproperlyConfigured(
django.core.exceptions.ImproperlyConfigured: Could not find the GDAL library (tried "gdal304", "gdal303", "gdal302", "gdal301", 
"gdal300", "gdal204", "gdal203", "gdal202"). Is GDAL installed? If it is, try setting GDAL_LIBRARY_PATH in your settings. 

علما ان Setting.py:

from pathlib import Path
import os
# Build paths inside the project like this: BASE_DIR / 'subdir'.
BASE_DIR = Path(__file__).resolve().parent.parent
EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'

# Quick-start development settings - unsuitable for production
# See https://docs.djangoproject.com/en/4.1/howto/deployment/checklist/

# SECURITY WARNING: keep the secret key used in production secret!

SECRET_KEY ='django-insecure-0izl^kd59le=r$_eke-7yv#hed&i&20)$#####'

# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True

ALLOWED_HOSTS = []


# Application definition


INSTALLED_APPS = [
   'patient',
   'accounts',
   'import_export',
    'index',
    'blog',
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
]

MIDDLEWARE = [
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
]

ROOT_URLCONF = 'Medical.urls'
CRISPY_TEMPLATE_PACK ='bootstrap4'
TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
         'DIRS': ['templates'],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
               
            ],
            
        },
    },
]

WSGI_APPLICATION = 'Medical.wsgi.application'



DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql', 
        'NAME':'Medical',
        'USER': 'postgres',
        'PASSWORD':'123456',
        'HOST': 'localhost',
        'PORT': '5432',
    
    }
}


AUTH_PASSWORD_VALIDATORS = [
    {
        'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
    },
    {
        'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
    },
    {
        'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
    },
    {
        'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
    },
]


# Internationalization
# https://docs.djangoproject.com/en/4.1/topics/i18n/

LANGUAGE_CODE = 'en-us'

TIME_ZONE = 'UTC'

USE_I18N = True

USE_TZ = True


# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/4.1/howto/static-files/

STATIC_URL = '/static/'
STATICFILES_DIRS = [
    BASE_DIR / "static",
]

MEDIA_URL = '/media/'
MEDIAFILES_DIRS = [
    BASE_DIR / "media",
]
LOGIN_URL='accounts:login'

# Default primary key field type
# https://docs.djangoproject.com/en/4.1/ref/settings/#default-auto-field

DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'

# if not os.path.join(LOG_PATH):
#     os.mkdir(LOG_PATH)
# MIDDLEWARE_CLASSES=(
#     'easy_timezones.middleware.EasyTimezoneMiddleware',
# )
DEFAULT_FROM_EMAIL = "will@wsvincent.com"
EMAIL_BACKEND = "django.core.mail.backends.console.EmailBackend"




 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 0

لقد وجدت ما يلي يعمل مع windows:

قم بتشغيل python للتحقق مما إذا كانت python 32 أو 64 بت.
قم بتثبيت OSGeo4W التالي (32 أو 64 بت) في C: \ OSGeo4W أو C: \ OSGeo4W64:
ملاحظة: حدد تثبيت Express Web-GIS وانقر فوق التالي.
في قائمة ‘Select Packages’ ، تأكد من تحديد GDAL ؛ يتم أيضًا تمكين MapServer و Apache افتراضيًا ، وقد يتم إلغاء تحديدهما بأمان.
تأكد من تضمين ما يلي في settings.py:

import os
if os.name == 'nt':
    import platform
    OSGEO4W = r"C:\OSGeo4W"
    if '64' in platform.architecture()[0]:
        OSGEO4W += "64"
    assert os.path.isdir(OSGEO4W), "Directory does not exist: " + OSGEO4W
    os.environ['OSGEO4W_ROOT'] = OSGEO4W
    os.environ['GDAL_DATA'] = OSGEO4W + r"\share\gdal"
    os.environ['PROJ_LIB'] = OSGEO4W + r"\share\proj"
    os.environ['PATH'] = OSGEO4W + r"\bin;" + os.environ['PATH']

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

مرحبا زينة،

دجانغو لم يستطع تحديد مكتبة gdal في النظام الذي تستعملينه.

إذا كنت تستعملين نظام Debian/Ubuntu فعليك تشغيل هذا الأمر:

sudo apt-get install binutils libproj-dev gdal-bin

الذي سوف يقوم بتحميل جميع المكتبات اللازمة لتشغيل مشروعك.

أما اذا كنت تستعملين نظام وندوز فالأمر معقد قليلا:

أولا: عليك بتحميل OSGeo4W installer الذي يعمل على تحميل وتنصيب المكتبات PROJ و GDAL و GEOS.

ثانيا: ستحتاجين إلى إضافة OSGeo4W إلى مسار نظام Windows الخاص بك ، وكذلك إنشاء متغيرات بيئة GDAL_DATA .

ستقوم مجموعة الأوامر التالية ، القابلة للتنفيذ باستخدام cmd.exe ، بإعداد هذا الأمر. أعيدي تشغيل جهازك بمجرد اكتمال ذلك حتى يتم التعرف على متغيرات البيئة الجديدة

set OSGEO4W_ROOT=C:\OSGeo4W64
set GDAL_DATA=%OSGEO4W_ROOT%\share\gdal
set PROJ_LIB=%OSGEO4W_ROOT%\share\proj
set PATH=%PATH%;%OSGEO4W_ROOT%\bin
reg ADD "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v Path /t REG_EXPAND_SZ /f /d "%PATH%"
reg ADD "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v GDAL_DATA /t REG_EXPAND_SZ /f /d "%GDAL_DATA%"
reg ADD "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v PROJ_LIB /t REG_EXPAND_SZ /f /d "%PROJ_LIB%"

ملاحظة: OSGeo4W64 هو المجلد الذي قمنا بتنصيب OSGeo4W فيه. 

بالتوفيق.

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ منذ ساعة مضت قال مسعود زاهي:

مرحبا زينة،

دجانغو لم يستطع تحديد مكتبة gdal في النظام الذي تستعملينه.

إذا كنت تستعملين نظام Debian/Ubuntu فعليك تشغيل هذا الأمر:


sudo apt-get install binutils libproj-dev gdal-bin

الذي سوف يقوم بتحميل جميع المكتبات اللازمة لتشغيل مشروعك.

أما اذا كنت تستعملين نظام وندوز فالأمر معقد قليلا:

أولا: عليك بتحميل OSGeo4W installer الذي يعمل على تحميل وتنصيب المكتبات PROJ و GDAL و GEOS.

ثانيا: ستحتاجين إلى إضافة OSGeo4W إلى مسار نظام Windows الخاص بك ، وكذلك إنشاء متغيرات بيئة GDAL_DATA .

ستقوم مجموعة الأوامر التالية ، القابلة للتنفيذ باستخدام cmd.exe ، بإعداد هذا الأمر. أعيدي تشغيل جهازك بمجرد اكتمال ذلك حتى يتم التعرف على متغيرات البيئة الجديدة


set OSGEO4W_ROOT=C:\OSGeo4W64
set GDAL_DATA=%OSGEO4W_ROOT%\share\gdal
set PROJ_LIB=%OSGEO4W_ROOT%\share\proj
set PATH=%PATH%;%OSGEO4W_ROOT%\bin
reg ADD "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v Path /t REG_EXPAND_SZ /f /d "%PATH%"
reg ADD "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v GDAL_DATA /t REG_EXPAND_SZ /f /d "%GDAL_DATA%"
reg ADD "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v PROJ_LIB /t REG_EXPAND_SZ /f /d "%PROJ_LIB%"

ملاحظة: OSGeo4W64 هو المجلد الذي قمنا بتنصيب OSGeo4W فيه. 

بالتوفيق.

شكرا لك 

عندما اقوم بالتنقيذ ضمن ل cmd يظهر خطأ ERROR: Access is denied.

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ 25 دقائق مضت قال Zeina Makdisi:

شكرا لك 

عندما اقوم بالتنقيذ ضمن ل cmd يظهر خطأ ERROR: Access is denied.

صلاحيات المسؤول مطلوبة لتنفيذ هذه الأوامر. للقيام بذلك ، قم بتشغيل موجه الأوامر cmd كمسؤول (administrator) وأدخل الأوامر أعلاه. تحتاج إلى تسجيل الخروج وتسجيل الدخول مرة أخرى حتى تدخل الإعدادات حيز التنفيذ.

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ 17 دقائق مضت قال Zeina Makdisi:

قمت بتنقيذ الخطوات جميعها لكن المشكلة مازالت موجودة :(

 

بعد تنفيذ الخطوات السابقة عليك إعادة تشغيل الجهاز حتى يتم التعرف على متغيرات البيئة الجديدة.

أي نظام تستخدمين وندوز 10 او وندوز 11 ؟

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ 15 ساعات قال Zeina Makdisi:

ويندوز 10 

قمت بإعادة تشغيل مرتين ونفس النتيجة

مرحبا مجددا زينة،

البرمجة في نظام ويندوز غالبا ماكانت وجع رأس بالنسبة لكثير من المطورين وهذا راجع لصعوبة تثبيت المكتبات، لهذا أغلب المطورين يستعملون نظام لينكس أو ماكينتوش.

هناك طريقة أخرى لتثبيت مكتبة Gdal في ويندوز وهي استعمال الحزمة الغير رسمية والموجهة خصيصا لمستعملي نظام ويندوز.

نذهب أولا إلى موقع Archived: Unofficial Windows Binaries for Python Extension Packages الذي يوفر لك الكثير من حزم بايثون للويندوز الغير رسمية. يتم ترتيب الحزم أبجديًا و نظرًا لأننا نحتاج إلى GDAL للغة بايثون ، قم بالتمرير لأسفل إلى قسم GDAL.

يمكنك ملاحظة أن الملفات تكون على الشكل التالي:

[GDAL version] [Python version] [architecture] 
#  GDAL version هو رقم اصدار GDAL
# python version رقم اصدار بايثون
# architecture سواء 64 او 32

عليك التحقق من إصدار ال Architecture الخاصة بجهاز الكمبيوتر الخاص بك سواء كان إصدار 64 بت أو 32 بت، وتحديد إصدار python الخاص بك وإصدار GDAL الذي تريدينه ، وبعدها نحمل ملف ال .whl. مثال على ذلك:

نفرض أن جهازنا هو 64 بيت
ونسخة بايثون التي نستخدمها هي 3.10
ونبحث على نسخة 3.4.3 من مكتبة
GDAL

إذا الملف الذي سوف نقوم بتحميله هو

GDAL3.4.3cp310cp310win_amd64.whl

بعد تحميل الملف نقوم بتثبيت المكتبة وذلك عن طريق الأمر:

pip install GDAL3.4.3cp310cp310win_amd64.whl

بهذا نكون قد قمنا بتثبيت مكتبة GDAL.

بالتوفيق،

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...