簡體   English   中英

IPython Notebook 和 SQL:運行“%load_ext sql”時出現“ImportError: No module named sql”

[英]IPython Notebook and SQL: 'ImportError: No module named sql' when running '%load_ext sql'

只需在 Ubuntu 16.04 上設置一個 IPython 筆記本,但我不能使用%load_ext sql 我得到: ImportError: No module named sql

我試過使用 pip 和 pip3 帶和不帶sudo來安裝 ipython-sql。 所有 4 次安裝都沒有問題,但筆記本上沒有任何變化。

提前致謝!

我知道這已經很長時間了,但我遇到了同樣的問題,托馬斯的建議解決了我的問題。 只是概述我在這里做了什么。

當我在筆記本中運行sys.executable時,我看到了/usr/bin/python2 ,而我用來安裝軟件包的 pip 是/usr/local/bin/pip (要找出您正在使用的pip ,只需執行which pipsudo which pip如果您在系統范圍內安裝軟件包)。 所以我使用以下命令重新安裝了ipython-sql ,一切都很好。

sudo -H /usr/bin/python2 -m pip install ipython-sql

這很奇怪,因為我總是使用pip安裝我的軟件包。 我想知道 Jupyter 中的魔法函數可能有什么特別之處。

我知道這個答案會(非常)遲到為討論做出貢獻,但也許它會對某人有所幫助。 通過關注上面評論的托馬斯,我發現了什么對我有用。 然而,有一點需要注意的是,我使用pyenv在我的本地機器上設置和管理 python。

因此,當在 jupyter 筆記本單元格中運行sys.executable時,我發現我的 python 路徑是/usr/local/Cellar/jupyterlab/3.2.8/libexec/bin/python3.9 ,而我預計它會在某個地方'/Users/<USER_NAME>/.pyenv/versions/3.9.2/bin/python'

此錯誤歸因於我通過命令brew install jupyter而不是pyenv exec pip install jupyter 我繼續用 brew 卸載 jupyter,然后執行第二個命令,現在 jupyter 啟動並運行!

(請注意,您首先必須正確設置pyenv )。

我懷疑您使用的是不同的 IPython Notebook 內核,而不是安裝了ipython-sql內核。
IPython Notebook 可以有多個內核。 如果是這種情況,請先確保您在正確的位置。

如果您嘗試連接 IBM 數據庫並遇到此問題,而上述解決方案無法為您解決,您可以給這個機會。 (順便說一句,此錯誤通常意味着您的軟件包安裝之一不符合要求,或者更有可能:您處於錯誤的內核/虛擬環境中,並且 Jupyter 實例無法從指定的軟件包運行您的命令。)

從 JupyterLab 或 Jupyter Notebook 轉到Kernel>Change Kernel並更改已安裝軟件包的內核。 等待它建立連接。 然后使用0, 0重啟內核(或Kernel>Restart Kernel

轉到任何單元格並運行以下命令以在當前內核中安裝軟件包。

!pip install sqlalchemy==1.3.9
!pip install ibm_db_sa
!pip install ipython-sql

現在試試%load_ext sql

無論你在哪里安裝 jupyter,jupyter 都會在哪里加載 exts。 您正在使用安裝在虛擬環境之外的 jupyter,然后激活虛擬環境,然后安裝ipython-sql ,然后嘗試從不同級別load_ext

只需停用虛擬環境,安裝ipython-sql ,然后激活環境即可。

如果你只想在虛擬環境中安裝ipython-sql ,那么至少你也需要在虛擬環境中安裝 jupyter。 兩只小狗應該處於同一水平。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM