جایگزین کردن pymysql به جای mysqlclient در جنگو
شاید برای شما هم پیش آمده که یک هاست لینوکس خریدید تا پروژهی جنگوی خود را روی آن نصب کنید. اگر پروژهی جنگوی شما از دیتابیس mysql استفاده کند احتمالا نیاز به پکیج mysqlclient دارید که روی لوکال به سادگی قابل نصب است.
جایگزین کردن pymysql به جای mysqlclient در جنگو
خطایی که احتمالا با آن روبرو خواهید شد خطای زیر است:
error: command ‘/opt/rh/devtoolset-7/root/usr/bin/gcc’ failed: No such file or directory
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
error: legacy-install-failure
× Encountered error while trying to install package.
╰─> mysqlclient
note: This is an issue with the package mentioned above, not pip.
hint: See above for output from the failure
برای رفع مشکل نصب نشدن mysqlclient کافیست به جای آن از پکیج pymysql استفاده کنید. برای نصب pymysql کافیست ابتدا دستور زیر را اجرا کنید:
pip install pymysql
بعد از نصب pymysql کافیست وارد فایل settings.py پروژهی جنگوی خود شوید و در ابتدای این فایل دستورات زیر را وارد کنید:
import pymysql pymysql.install_as_MySQLdb()
حالا سرور خود را ری استارت کنید و از ادامهی فرآیند توسعهی خود را انجام دهید.



















برای استفاده از pymysql نیاز به تغییر در settings.py جز import و install_as_MySQLdb هست؟
خیر، فقط کافیست دستورات import pymysql و pymysql.install_as_MySQLdb() را در ابتدای فایل settings.py اضافه کنید.
آیا استفاده از pymysql روی پروژههای بزرگ هم پایدار و امنه؟
بله، pymysql یک جایگزین پایدار و امن برای mysqlclient محسوب میشود و در پروژههای بزرگ نیز قابل استفاده است.
نصب pymysql راحتتر از mysqlclientه یا هنوز بعضی مشکلات پیش میاد؟
نصب pymysql معمولاً راحتتر است و مشکلات کمتری نسبت به mysqlclient دارد، به خصوص در محیطهای هاست اشتراکی.
این روش روی سرورهای لینوکس با محدودیتهای مختلف هم جواب میده؟
بله، این روش روی اکثر سرورهای لینوکس با محدودیتهای مختلف نیز جواب میدهد و جایگزین مناسبی برای mysqlclient است.
آیا استفاده از pymysql روی همه نسخههای جنگو بدون مشکل کار میکنه؟
بله، pymysql به طور کلی با اکثر نسخههای جنگو سازگار است و به عنوان جایگزینی مطمئن برای mysqlclient عمل میکند.