簡體   English   中英

導入錯誤:沒有名為 sqlalchemy 的模塊

[英]ImportError: No module named sqlalchemy

我無法在 python 中找到一個模塊,盡管 easy_install 說它已經安裝了。 知道如何解決這個問題嗎?

$ python -c "from flaskext.sqlalchemy import SQLAlchemy"
Traceback (most recent call last):
  File "<string>", line 1, in <module>
ImportError: No module named sqlalchemy


$ python -V
Python 2.7


$ sudo easy_install sqlalchemy
Searching for sqlalchemy
Best match: SQLAlchemy 0.7.7
Adding SQLAlchemy 0.7.7 to easy-install.pth file

Using /usr/lib/python2.7/site-packages
Processing dependencies for sqlalchemy
Finished processing dependencies for sqlalchemy

$ sudo pip install SQLAlchemy --upgrade 要求已經是最新的:/usr/lib/python2.7/site-packages 中的 SQLAlchemy 正在清理...

雖然 pip 說它已安裝。但我在 sys.path 輸出中找不到它們。

$ sudo python -c "import sys;print sys.path" ['',
'/usr/lib/python2.7/site-packages/Flask_SQLAlchemy-0.15-py2.7.egg',
'/usr/lib/python2.7/site-packages/Flask-0.8-py2.7.egg',
'/usr/lib/python2.7/site-packages/Jinja2-2.6-py2.7.egg',
'/usr/lib/python2.7/site-packages/Werkzeug-0.8.3-py2.7.egg',
'/usr/lib/python2.7/site-packages/Flask_WTF-0.5.2-py2.7.egg',
'/usr/lib/python2.7/site-packages/WTForms-0.6.3-py2.7.egg',
'/usr/lib/python2.7/site-packages/Flask_Mail-0.6.1-py2.7.egg',
'/usr/lib/python2.7/site-packages/blinker-1.2-py2.7.egg',
'/usr/lib/python2.7/site-packages/lamson-1.1-py2.7.egg',
'/usr/lib/python2.7/site-packages/python_daemon-1.6-py2.7.egg',
'/usr/lib/python2.7/site-packages/nose-1.1.2-py2.7.egg',
'/usr/lib/python2.7/site-packages/mock-0.8.0-py2.7.egg',
'/usr/lib/python2.7/site-packages/chardet-1.0.1-py2.7.egg',
'/usr/lib/python2.7/site-packages/lockfile-0.9.1-py2.7.egg',
'/usr/lib/python2.7/site-packages/Flask_FlatPages-0.2-py2.7.egg',
'/usr/lib/python2.7/site-packages/Markdown-2.1.1-py2.7.egg',
'/usr/lib/python2.7/site-packages/PyYAML-3.10-py2.7-linux-i686.egg',
'/usr/lib/python2.7/site-packages/uWSGI-1.0.3-py2.7.egg',
'/usr/lib/python2.7/site-packages/MySQL_python-1.2.3-py2.7-linux-i686.egg',
'/usr/lib/python27.zip', '/usr/lib/python2.7',
'/usr/lib/python2.7/plat-linux2', '/usr/lib/python2.7/lib-tk',
'/usr/lib/python2.7/lib-old', '/usr/lib/python2.7/lib-dynload',
'/usr/lib/python2.7/site-packages',
'/usr/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg-info']

你安裝了flask-sqlalchemy嗎? 看起來您安裝了 SQLAlchemy 但沒有安裝 Flask 擴展。 嘗試在項目的 virtualenv 中pip install Flask-SQLAlchemyPyPI安裝它。

我剛剛遇到了同樣的問題。 顯然,有一種新的分發方法,擴展代碼不再存儲在flaskext下。

來源: Flask CHANGELOG這對我有用

from flask_sqlalchemy import SQLAlchemy

在您的 virtualenv 中使用 pip 安裝 Flask-SQLAlchemy:

pip install flask_sqlalchemy

然后在您的代碼中導入flask_sqlalchemy

from flask_sqlalchemy import SQLAlchemy

好的,我已經通過 pip 重新安裝了軟件包,即使這沒有幫助。 然后我從其他具有與當前機器類似配置的工作機器上同步整個 /usr/lib/python-2.7 目錄。它開始工作。 我不知道,我的設置有什么問題。 我之前和現在看到一些不同的“打印 sys.path”輸出。 但現在我的問題通過這項工作解決了。

編輯:為我的設置找到了真正的解決方案。 升級“僅 sqlalchemy 不能解決問題”我還需要升級解決問題的flask-sqlalchemy

試試這個

from flask.ext.sqlalchemy import SQLAlchemy

所以這是一個想法!

因為它似乎在其他地方工作。

安裝python-virtualenv並且可以選擇安裝 virtualenv-wrapper(創建項目等非常酷)

在每個環境中,您可能有不同版本的雞蛋。 換句話說,您可以在兩個不同的環境中使用 sqlalchemy 1 和 sqlalchemy 1.5,並且它們不會相互沖突。 您當前安裝的雞蛋似乎有問題。

所以我們開始:

virtualenv --no-site-packages foo
source foo/bin/activate

參數 --no-site-packages 將創建一個 virtualenv 並且不使用已安裝在您的計算機上的包。 這很像一個裸 python 安裝。

source foo/bin/activate加載 virtualenv。

這不是真正的用戶友好。 這就是http://www.doughellmann.com/projects/virtualenvwrapper/存在的原因。

也就是說,一旦您的 virtualenv 被激活,您應該在終端“(foo)user@domain$:”中看到類似的東西。 這意味着你可以繼續!

那么你必須這樣做。

python setup.py develop你的項目。 它應該在位於foo的 virtualenv 中下載並安裝項目的依賴項。 如果您需要安裝其他任何東西,請使用pipeasy_install而不使用sudo 使用 virtualenv 時,您幾乎不需要使用sudo Sudo 將在您的全局 python 安裝中安裝包,雖然它不是必需的,也不是真正可取的。

如果您的 virtualenv 中發生了某些事情,您可以隨時刪除它並創建一個新的。 這沒什么大不了的。 沒有必要搞砸任何事情。 不起作用? 重新開始,如果需要,執行pip install -U如果需要定義版本等等。

最后但並非最不重要的一點是,在其他答案中,導入似乎發生了變化。 如果flask-sqlalchemy 的新版本位於其他地方,您應該更新您的導入或安裝您曾經使用的版本。

首先安裝庫

pip install flask_sqlalchemy 

之后

from flask_sqlalchemy import SQLAlchemy

把它放在 app.py 文件中以通過 SQLAlchemy 獲取數據庫的訪問權限

這段代碼完美運行:

import sqlalchemy

也許你在另一個版本的解釋器中安裝了這個包?

此外,就像 Shawley 指出的那樣,您需要安裝 Flask 擴展程序才能訪問它。

我是新手,使用 python 3.8 並遇到了同樣的問題。 我用pip而不是pip3安裝,因為我認為 pip 安裝程序對於 python2 和 python3 是相同的,所以這是正確的安裝

pip3 install flask_sqlalchemy

聚會很晚,但希望這會幫助某人,在相同的情況下大約一個小時沒有上述任何解決方案起作用。 (在 Windows 10 機器上)。

在設置/首選項對話框( Ctrl + Alt + S )中,從側邊菜單中選擇項目: | 項目口譯員。

檢查您當前安裝了哪些軟件包(您需要 SQLAlchemy 和 Flask-SQLAlchemy)。 雙擊任何包名稱,將打開“可用包”菜單。

搜索缺少的軟件包並單擊安裝。

可能是一個愚蠢的錯誤; 但是,我遇到了這個問題,結果證明問題是“pip3 install sqlalchemy”在用戶特定的目錄中安裝了庫。

在我的 Linux 機器上,我以 user1 身份登錄,在 user2 的目錄中執行 python 腳本。 我將 sqlalchemy 安裝為 user1,它默認將文件放在 user1 的目錄中。 在 user2 的目錄中安裝 sqlalchemy 后,問題就消失了。

我的解決方案是使用:

from flask_sqlalchemy import SQLAlchemy

代替

from flask.ext.sqlalchemy import SQLAlchemy

在 Windows 10 @ 2019 上

我遇到了同樣的問題。 原來我忘記安裝以下軟件包:

pip install flask_sqlalchemy

安裝軟件包后,一切正常。 希望,它幫助了像我這樣的其他菜鳥。

我剛剛在使用虛擬環境時遇到了同樣的問題。 對我來說,使用來自 venv 的 python 安裝軟件包有效:
.\\venv\\environment\\Scripts\\python.exe -m pip install flask-sqlalchemy

我不確定它是否仍然相關,但嘗試卸載 sqlalchemy,然后安裝flask-sqlalchemy。

我想如果你有 sqlalchemy,flask-sqlalchemy 就行不通了。

在 Python 3.8 中嘗試

我也因一個愚蠢的錯誤而面臨同樣的問題。 我從頭開始為燒瓶創建了一個單獨的 conda 環境。 但是,我嘗試使用 IPython 測試 FlaskSQLAlchemy 的導入。 最后,我意識到這是基於系統的 python,而不是來自 conda env 的 python。 始終確保您的sys.path包含帶有 flask_sqlalchemy 的目錄。

暫無
暫無

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

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