正如我的问题中所述,我现在正在配置我的 djagno 项目以与 postgres 连接。我面临的问题是,在进行迁移时,它向我显示以下错误:
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)
我已经尝试了几乎所有方法,从将 psql 添加到路径到尝试安装以前版本的 psycopg2,但无济于事。我还在 chatgpt 上运行了十几个会话
有人可以帮我吗?
要解决 Django 中的 PostgreSQL 连接问题,您可以按照此操作-
首先,安装正确的 PostgreSQL 数据库驱动程序。用途:
pip install psycopg2-binary
如果您更喜欢常规的
psycopg2
,则需要先安装 PostgreSQL 二进制文件:
pip install psycopg2
确保您的
settings.py
具有正确的数据库配置:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'put_your_db_name',
'USER': 'put_your_username',
'PASSWORD': 'put_your_password', # or use from env
'HOST': 'localhost',
'PORT': '5432',
}
}