Django连接PostgreSQL时无法使用psycopg2的问题求助
Django连接PostgreSQL时无法使用psycopg2的问题求助
各位好,我现在正在配置Django项目连接PostgreSQL,但运行迁移命令的时候一直报错,折腾了好久都没解决,想请大家帮忙看看!
我执行的命令是:
python manage.py makemigrations
得到的错误信息如下:
Traceback (most recent call last): File "E:\Code\Ecom\Ecom\ecom\Lib\site-packages\django\db\backends\postgresql\base.py", line 25, in <module> import psycopg as Database ModuleNotFoundError: No module named 'psycopg' During handling of the above exception, another exception occurred: Traceback (most recent call last): File "E:\Code\Ecom\Ecom\ecom\Lib\site-packages\django\db\backends\postgresql\base.py", line 27, in <module> import psycopg2 as Database File "E:\Code\Ecom\Ecom\ecom\Lib\site-packages\psycopg2\__init__.py", line 51, in <module> from psycopg2._psycopg import ( # noqa ...<10 lines>... ) ImportError: DLL load failed while importing _psycopg: The specified module could not be found. During handling of the above exception, another exception occurred: Traceback (most recent call last): File "E:\Code\Ecom\Ecom\backend\manage.py", line 22, in <module> main() ~~~~^^ File "E:\Code\Ecom\Ecom\backend\manage.py", line 18, in main execute_from_command_line(sys.argv) ~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^ File "E:\Code\Ecom\Ecom\ecom\Lib\site-packages\django\core\management\__init__.py", line 442, in execute_from_command_line utility.execute() ~~~~~~~~~~~~~~~^^ File "E:\Code\Ecom\Ecom\ecom\Lib\site-packages\django\core\management\__init__.py", line 416, in execute django.setup() ~~~~~~~~~~~~^^ File "E:\Code\Ecom\Ecom\ecom\Lib\site-packages\django\__init__.py", line 24, in setup apps.populate(settings.INSTALLED_APPS) ~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^ File "E:\Code\Ecom\Ecom\ecom\Lib\site-packages\django\apps\registry.py", line 116, in populate app_config.import_models() ~~~~~~~~~~~~~~~~~~~~~~~~^^ File "E:\Code\Ecom\Ecom\ecom\Lib\site-packages\django\apps\config.py", line 269, in import_models self.models_module = import_module(models_module_name) ~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^ File "E:\Coding Apps\Lib\importlib\__init__.py", line 88, in import_module return _bootstrap._gcd_import(name[level:], package, level) ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "<frozen importlib._bootstrap>", line 1387, in _gcd_import File "<frozen importlib._bootstrap>", line 1360, in _find_and_load File "<frozen importlib._bootstrap>", line 1331, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 935, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 1022, in exec_module File "<frozen importlib._bootstrap>", line 488, in _call_with_frames_removed File "E:\Code\Ecom\Ecom\ecom\Lib\site-packages\django\contrib\auth\models.py", line 5, in <module> from django.contrib.auth.base_user import AbstractBaseUser, BaseUserManager File "E:\Code\Ecom\Ecom\ecom\Lib\site-packages\django\contrib\auth\base_user.py", line 40, in <module> class AbstractBaseUser(models.Model): ...<123 lines>... ) File "E:\Code\Ecom\Ecom\ecom\Lib\site-packages\django\db\models\base.py", line 143, in __new__ new_class.add_to_class("_meta", Options(meta, app_label)) ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "E:\Code\Ecom\Ecom\ecom\Lib\site-packages\django\db\models\base.py", line 371, in add_to_class value.contribute_to_class(cls, name) ~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^ File "E:\Code\Ecom\Ecom\ecom\Lib\site-packages\django\db\models\options.py", line 231, in contribute_to_class self.db_table, connection.ops.max_name_length() ^^^^^^^^^^^^^^ File "E:\Code\Ecom\Ecom\ecom\Lib\site-packages\django\utils\connection.py", line 15, in __getattr__ return getattr(self._connections[self._alias], item) ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^ File "E:\Code\Ecom\Ecom\ecom\Lib\site-packages\django\utils\connection.py", line 62, in __getitem__ conn = self.create_connection(alias) File "E:\Code\Ecom\Ecom\ecom\Lib\site-packages\django\db\utils.py", line 193, in create_connection backend = load_backend(db["ENGINE"]) File "E:\Code\Ecom\Ecom\ecom\Lib\site-packages\django\db\utils.py", line 113, in load_backend return import_module("%s.base" % backend_name) File "E:\Coding Apps\Lib\importlib\__init__.py", line 88, in import_module return _bootstrap._gcd_import(name[level:], package, level) ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "E:\Code\Ecom\Ecom\ecom\Lib\site-packages\django\db\backends\postgresql\base.py", line 29, in <module> raise ImproperlyConfigured("Error loading psycopg2 or psycopg module") django.core.exceptions.ImproperlyConfigured: Error loading psycopg2 or psycopg module (ecom)
我已经试了各种办法:把PostgreSQL的bin目录添加到系统环境变量、安装不同旧版本的psycopg2,甚至和ChatGPT聊了十多轮,还是没解决这个问题。有没有大佬能给点思路或者解决方案?
备注:内容来源于stack exchange,提问作者Mohammed Hassan Naseer
相关产品推荐
相关产品推荐

