簡體   English   中英

ModuleNotFoundError:沒有名為“ flask”的模塊-Ubuntu遠程服務器

[英]ModuleNotFoundError: No module named 'flask' - Ubuntu Remote Server

我目前在通過Digitalocean Droplet創建的Ubuntu 16.04上。 我正在嘗試運行一個簡單的flask應用程序。 我正在遵循此指南,但是,我python app.py堅持這一步驟。 You can run the Flask app simply by running the following command:當我嘗試運行python app.py ,我得到了以下信息...

Traceback (most recent call last):
  File "app.py", line 1, in <module>
    from flask import Flask
ModuleNotFoundError: No module named 'flask'
Error in sys.excepthook:
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/apport_python_hook.py", line 63, in apport_excepthook
    from apport.fileutils import likely_packaged, get_recent_crashes
  File "/usr/lib/python3/dist-packages/apport/__init__.py", line 5, in <module>
    from apport.report import Report
  File "/usr/lib/python3/dist-packages/apport/report.py", line 30, in <module>
    import apport.fileutils
  File "/usr/lib/python3/dist-packages/apport/fileutils.py", line 23, in <module>
    from apport.packaging_impl import impl as packaging
  File "/usr/lib/python3/dist-packages/apport/packaging_impl.py", line 23, in <module>
    import apt
  File "/usr/lib/python3/dist-packages/apt/__init__.py", line 23, in <module>
    import apt_pkg
ModuleNotFoundError: No module named 'apt_pkg'

Original exception was:
Traceback (most recent call last):
  File "app.py", line 1, in <module>
    from flask import Flask
ModuleNotFoundError: No module named 'flask'

此外,燒瓶已安裝。

Requirement already satisfied: flask in /usr/local/lib/python3.5/dist-packages (1.0.2)
Requirement already satisfied: Werkzeug>=0.14 in /usr/local/lib/python3.5/dist-packages (from flask) (0.14.1)
Requirement already satisfied: itsdangerous>=0.24 in /usr/local/lib/python3.5/dist-packages (from flask) (0.24)
Requirement already satisfied: Jinja2>=2.10 in /usr/local/lib/python3.5/dist-packages (from flask) (2.10)
Requirement already satisfied: click>=5.1 in /usr/local/lib/python3.5/dist-packages (from flask) (6.7)
Requirement already satisfied: MarkupSafe>=0.23 in /usr/lib/python3/dist-packages (from Jinja2>=2.10->flask) (0.23)

當環境處於活動狀態時,我在運行python app.py時得到以下堆棧跟蹤

Traceback (most recent call last):
  File "app.py", line 10, in <module>
    app.run(debug=True)
  File "/home/.env/lib/python3.5/site-packages/flask/app.py", line 910, in run
    cli.load_dotenv()
  File "/home/.env/lib/python3.5/site-packages/flask/cli.py", line 608, in load_dotenv
    dotenv.load_dotenv(path)
  File "/home/.env/lib/python3.5/site-packages/dotenv/main.py", line 255, in load_dotenv
    return DotEnv(f, verbose=verbose).set_as_environment_variables(override=override)
  File "/home/.env/lib/python3.5/site-packages/dotenv/main.py", line 95, in set_as_environment_variables
    for k, v in self.dict().items():
  File "/home/.env/lib/python3.5/site-packages/dotenv/main.py", line 74, in dict
    values = OrderedDict(self.parse())
  File "/home/.env/lib/python3.5/site-packages/dotenv/main.py", line 79, in parse
    f = self._get_stream()
  File "/home/.env/lib/python3.5/site-packages/dotenv/main.py", line 62, in _get_stream
    return io.open(self.dotenv_path)
IsADirectoryError: [Errno 21] Is a directory: '/home/.env'

@Abhilash看起來問題不是代碼,是關於設置的。

默認情況下,Python將在主目錄中查找flask環境配置,該目錄通常存儲在.env文件中。 您的情況就是虛擬環境。 因此,錯誤。

請按照以下步驟操作:

轉到用戶的文檔目錄,例如

cd /home/rahul/Documents/

為燒瓶應用程序創建一個單獨的文件夾:

mkdir flask_test_app

進入以上目錄:

cd flask_test_app

在此處創建虛擬環境:

virtualenv .env

激活此虛擬環境:

source .env/bin/activate

它應該顯示如下內容:

(.env) rahul@ramco:~/Documents/flask_test_app

安裝燒瓶:

pip install Flask

將創建的flask應用程序文件放置在當前文件夾中,即app.py文件。

運行應用程序:

python app.py

這將在flask的默認端口5000上啟動flask應用,並在終端中顯示以下內容:

 * Tip: There are .env files present. Do "pip install python-dotenv" to use them.
 * Serving Flask app "app" (lazy loading)
 * Environment: production
   WARNING: Do not use the development server in a production environment.
   Use a production WSGI server instead.
 * Debug mode: on
 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
 * Restarting with stat
 * Tip: There are .env files present. Do "pip install python-dotenv" to use them.
 * Debugger is active!
 * Debugger PIN: 303-406-109

注意:如果必須使用其他名稱(如.venvvenv ,請嘗試避免在主目錄中創建虛擬環境。 這樣就不會與默認配置沖突。

暫無
暫無

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

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