執行代碼報錯:“sqlite:No module named _sqlite3”
- 執行環境說明
某臺服務器上執行DrissionPage相關程序報錯,本機沒有問題。
- 解決說明
本機找到_sqlite3實際為python內建庫,與math庫在同一級,即為環境問題。重裝python環境是不可選的,投機取巧一下。
嘗試在一臺服務器上找一下_sqlite的so文件,執行以下命令:
sudo find / -name _sqlite*.so # 大概會輸出 /usr/lib64/python2.7/lib-dynload/_sqlite3.so /usr/lib64/python2.7/site-packages/_sqlitecache.so /usr/lib64/python3.6/lib-dynload/_sqlite3.cpython-36m-x86_64-linux-gnu.so /usr/local/python3/lib/python3.9/lib-dynload/_sqlite3.cpython-39-x86_64-linux-gnu.so
同理,在有問題服務器查詢_sqlite的so文件,這里查到python2的so文件,不可直接復制這個文件!
先確認有問題那臺服務器,python2版本_sqlite的so文件在什么路徑,上對應python3該路徑下看看確認要把so文件復制到這個路徑下。
執行下面同步文件命令:
rsync -av -W --update --progress --partial /usr/local/python3/lib/python3.9/lib-dynload/_sqlite3.cpython-39-x86_64-linux-gnu.so your_username@your_host:/your_path
當然,如果沒有權限直至同步到目標路徑下,可先同步到home或者temp目錄下,再mv過去。
實踐出真知~
浙公網安備 33010602011771號