简体   繁体   English

ModuleNotFoundError:没有名为“ flask”的模块-Ubuntu远程服务器

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

I'm currently on Ubuntu 16.04 that I created through Digitalocean Droplet. 我目前在通过Digitalocean Droplet创建的Ubuntu 16.04上。 I'm trying to run a simple flask application. 我正在尝试运行一个简单的flask应用程序。 I'm following this GUIDE However, I'm stuck on this step You can run the Flask app simply by running the following command: when I try running python app.py , I get the following... 我正在遵循此指南,但是,我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'

Also, flask is already installed. 此外,烧瓶已安装。

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)

While the environment is active, I get the below stack trace when I run python app.py 当环境处于活动状态时,我在运行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 looks like the problem isn't the code, it's about the setup. @Abhilash看起来问题不是代码,是关于设置的。

By default, Python will look for flask environment configurations in the home directory, which generally is stored in the .env file. 默认情况下,Python将在主目录中查找flask环境配置,该目录通常存储在.env文件中。 In your case that is the virtual environment. 您的情况就是虚拟环境。 Hence the error. 因此,错误。

Follow the steps below: 请按照以下步骤操作:

Go to your user's document directory, eg 转到用户的文档目录,例如

cd /home/rahul/Documents/

Create a separate folder for your flask application: 为烧瓶应用程序创建一个单独的文件夹:

mkdir flask_test_app

Go into the above directory: 进入以上目录:

cd flask_test_app

Create Virtual Environment here: 在此处创建虚拟环境:

virtualenv .env

Activate this virtual environment: 激活此虚拟环境:

source .env/bin/activate

It should show the something like below: 它应该显示如下内容:

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

Install Flask: 安装烧瓶:

pip install Flask

Put the flask app file created in the current folder, ie, app.py file. 将创建的flask应用程序文件放置在当前文件夹中,即app.py文件。

Run the application: 运行应用程序:

python app.py

This will start the flask app on flask's default port 5000, and will display something like below in the terminal: 这将在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

NOTE: Try to avoid creating a virtual environment in the home directory, if you have to then use some other name like .venv or venv . 注意:如果必须使用其他名称(如.venvvenv ,请尝试避免在主目录中创建虚拟环境。 So that it won't conflict with the default configurations. 这样就不会与默认配置冲突。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM