البرمجة

حل مشكلة psycopg2: خطأ SSL عند الاتصال بقاعدة بيانات PostgreSQL

عندما تواجه تحديات في الاتصال بقاعدة البيانات الخاصة بك باستخدام مكتبة psycopg2 في Python، قد تكون هناك عدة عوامل تحتاج إلى النظر. في هذه الحالة، يظهر لديك خطأ يشير إلى أن دعم SSL غير مضمن في psycopg2، وهذا يمكن أن يكون ناتجًا عن تكوين غير صحيح للبيئة الخاصة بك.

لتوضيح، يجدر بنا النظر في بيئة نظام التشغيل الخاصة بك، حيث يبدو أنك تستخدم Mac OS X El Capitan. قد تكون هناك تداخلات بين إصدار Python المثبت عبر Homebrew والإصدار الذي يأتي مع نظام التشغيل.

أولاً، يفضل التحقق من إصدار Python الذي يستخدمه النظام الخاص بك والتأكد من أنك تستخدم الإصدار الصحيح. يمكنك القيام بذلك عبر الأمر:

bash
python --version

قد تحتاج أيضًا إلى التحقق من إصدار Python الذي تستخدمه في السكربت الخاص بك، والتأكد من أن هناك تناغم بين الإصدارين.

ثم، يمكنك محاولة تنفيذ الخطوات التالية:

  1. قم بتحديث إصدار Python الخاص بك عبر Homebrew:
bash
brew update brew upgrade python
  1. قم بتثبيت psycopg2 مع دعم SSL:
bash
pip uninstall psycopg2 brew install openssl LDFLAGS="-L/usr/local/opt/openssl/lib" CPPFLAGS="-I/usr/local/opt/openssl/include" pip install psycopg2
  1. قم بتحديث سطح المكتب الخاص بك للتأكد من أنك تستخدم الإصدار الصحيح من Python.

  2. قم بتشغيل السكربت مرة أخرى وتحقق مما إذا كان الخطأ قد تم حله.

إذا استمرت المشكلة، يمكن أن يكون هناك تداخل بين نسخ Python المختلفة. يمكنك استخدام بيئات افتراضية باستخدام virtualenv لتفادي مشاكل التداخل بين الإصدارات.

المزيد من المعلومات

بالطبع، دعنا نتعمق أكثر في بعض النقاط لتوفير إرشادات دقيقة وشاملة لحل المشكلة.

أولاً وقبل أي شيء آخر، يجب عليك التأكد من أنك تعمل في بيئة افتراضية مستقلة باستخدام virtualenv لتجنب تداخل الحزم والمتغيرات بين مشاريعك. يمكنك إنشاء بيئة افتراضية باستخدام الأوامر التالية:

bash
# تثبيت virtualenv إذا لم يكن مثبتًا بالفعل pip install virtualenv # إنشاء بيئة افتراضية virtualenv venv # تنشيط البيئة الافتراضية source venv/bin/activate

بعد تنشيط البيئة الافتراضية، يمكنك تثبيت psycopg2 مع دعم SSL بناءً على OpenSSL المثبت عبر Homebrew بناءً على التوجيهات السابقة.

ثانيًا، يفضل أن تتأكد من أنك تستخدم الإصدار الصحيح من pip. في بعض الأحيان، يكون هناك خلل في تحديث pip بناءً على النسخة الحالية لديك. يمكنك تحديث pip باستخدام الأمر التالي:

bash
pip install --upgrade pip

ثالثًا، يمكنك التحقق من تكوين OpenSSL الذي يستخدمه Python. يمكنك القيام بذلك عبر الأمر:

bash
python -c "import ssl; print(ssl.OPENSSL_VERSION)"

تأكد من أن الإصدار المطابق مع الذي قمت بتثبيته عبر Homebrew.

أخيرًا، تأكد من أنك تعمل في بيئة تشغيل تستخدم الإصدار الصحيح من Python. يمكنك ذلك عبر التحقق من مسار Python الذي يتم استخدامه داخل السكربت. يمكنك إلحاق السطر التالي في بداية السكربت للتأكد من استخدام البيئة الافتراضية:

python
#!/usr/bin/env python # -*- coding: utf-8 -*- import sys print(sys.executable)

بعد اتخاذ هذه الخطوات، يجب أن تكون قادرًا على تجنب الخطأ المتعلق بـ “sslmode” والاتصال بقاعدة البيانات Postgres بنجاح.

مقالات ذات صلة

زر الذهاب إلى الأعلى
إغلاق

أنت تستخدم إضافة Adblock

يرجى تعطيل مانع الإعلانات حيث أن موقعنا غير مزعج ولا بأس من عرض الأعلانات لك فهي تعتبر كمصدر دخل لنا و دعم مقدم منك لنا لنستمر في تقديم المحتوى المناسب و المفيد لك فلا تبخل بدعمنا عزيزي الزائر