[英]ImportError: psycopg2 for creating engine
我一直在嘗試創建到我的 postgres 數據庫的連接。 通過這樣做,我通過運行此代碼得到以下錯誤
import pandas as pd
import numpy as np
import os
from sqlalchemy import create_engine, text
from datetime import datetime, timedelta
from pytz import timezone
postgres = create_engine("postgresql+psycopg2://user:password@xx.xx.xx.xx", connect_args={'sslmode':'require'})
出現以下錯誤消息:
Output exceeds the size limit. Open the full output data in a text editor
---------------------------------------------------------------------------
ImportError Traceback (most recent call last)
/User/Documents/github/new_project copy.py Cell 4 in <cell line: 8>()
5 from datetime import datetime, timedelta
6 from pytz import timezone
----> 8 postgres = create_engine("postgresql+psycopg2://user:password@xx.xx.xx.xx", connect_args={'sslmode':'require'})
File <string>:2, in create_engine(url, **kwargs)
File ~/Documents/github/new_project/.venv/lib/python3.9/site-packages/sqlalchemy/util/deprecations.py:309, in deprecated_params.<locals>.decorate.<locals>.warned(fn, *args, **kwargs)
302 if m in kwargs:
303 _warn_with_version(
304 messages[m],
305 versions[m],
306 version_warnings[m],
307 stacklevel=3,
308 )
--> 309 return fn(*args, **kwargs)
File ~/Documents/github/new_project/.venv/lib/python3.9/site-packages/sqlalchemy/engine/create.py:560, in create_engine(url, **kwargs)
558 if k in kwargs:
559 dbapi_args[k] = pop_kwarg(k)
--> 560 dbapi = dialect_cls.dbapi(**dbapi_args)
562 dialect_args["dbapi"] = dbapi
564 dialect_args.setdefault("compiler_linting", compiler.NO_LINTING)
...
67 from psycopg2 import extensions as _ext
ImportError: dlopen(/Users/myname/Documents/github/new_project/.venv/lib/python3.9/site-packages/psycopg2/_psycopg.cpython-39-darwin.so, 0x0002): Library not loaded: '/opt/homebrew/opt/postgresql/lib/libpq.5.dylib'
Referenced from: '/Users/myname/Documents/github/new_project/.venv/lib/python3.9/site-packages/psycopg2/_psycopg.cpython-39-darwin.so'
Reason: tried: '/opt/homebrew/opt/postgresql/lib/libpq.5.dylib' (no such file), '/usr/local/lib/libpq.5.dylib' (no such file), '/usr/lib/libpq.5.dylib' (no such file)
(由於隱私原因,我改變了路徑,但是邏輯沒有改變)
因此,錯誤似乎與psycopg2
庫的安裝有關。 但是通過運行 pip3 列表,我得到 psycopg2 2.9.3 顯示為已安裝。
我在虛擬環境 (venv) 中運行代碼,但我也在本地進行了檢查,但並沒有消除問題。
另外要注意的是,這個問題以前沒有出現過。 可能是它與從 postgresql@13 升級到 postgresql@14 有某種關系,同時我又反轉了。 此外,我在帶有 M1 芯片的 macOS 上運行代碼。
我在 StackOverflow 和其他網站( 在 Mac OS (Yosemite) 上使用 psycopg2 時出現問題, 未加載導入 psycopg2 庫)中查找了大量文章,但沒有一篇可以解決問題。
由於我所有的嘗試都失敗了,例如重新安裝 psycopg2 和安裝 psycopg2-binary 都沒有解決我的問題,因此非常感謝可能的解決方案或錯誤來源的指示。
我發現在我的例子中,文件在另一個文件夾中。 我使用以下命令創建了符號鏈接:
sudo ln -s /Applications/Postgres.app/Contents/Versions/14/lib/libpq.5.14.dylib /usr/local/lib/libpq.5.dylib
現在它在 macos Monterey 12.4 上運行良好
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.