指向文件夹内的pipenv FLASK_APP问题

时间:2018-11-29 00:52:00

标签: python flask pipenv

我一直在尝试遵循一些教程,并在pipenv环境中启动flask项目。我似乎无法将导出的FLASK_APP = <-app.py location->指向正确的位置。

我从pipenv install flask开始项目 我验证了python在环境中正常工作:

如果将app.py放在VENV主文件夹中,则可以使用export FLASK_APP=app.py指向它并运行pipenv run flask run,一切正常。

然后我创建一个名为flask的文件夹,其中包含__init__.pyapp.py

然后我尝试导出FLASK_APP并运行pipenv run flask run

export FLASK_APP=/flask/app.py不起作用

export FLASK_APP=./flask/app.py不起作用

export FLASK_APP=$VIRTUAL_ENV/../flask/app.py不起作用

当我在$VIRTUAL_ENV/中查看时,我什至看不到该文件夹​​。我只看到bin/ include/ lib/ src/

这一定很简单,我很想念。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

  • 请勿在虚拟环境文件夹中放置任何内容
  • 将虚拟环境文件夹视为由pippipenv命令管理的黑匣子。

以下是在pipenv中创建flask应用程序的步骤

  1. mkdir <project_root>为项目创建新文件夹
  2. cd <test_flask_app>进入新文件夹
  3. pipenv --three使用python 3创建新的虚拟环境
  4. pipenv shell激活pipenv虚拟环境
  5. pipenv install flask安装烧瓶
  6. mkdir <python_code_root>为所有python代码创建文件夹(例如,参见python项目https://github.com/kennethreitz/samplemod的示例)
  7. 创建简单的烧瓶应用程序文件<python_code_root>/app.py(摘自http://flask.pocoo.org/

    from flask import Flask
    app = Flask(__name__)
    
    @app.route("/")
    def hello():
        return "Hello World!"
    

    预期的项目文件夹应该看起来像

    .
    ├── Pipfile
    ├── Pipfile.lock
    └── <python_code_root>
        └── app.py
    
  8. export FLASK_APP=<python_code_root>/app.py导出变量

  9. flask run启动flask应用程序
  10. 在浏览器中转到http://localhost:5000/

请注意,pipenv --three在随机散列文件夹中生成python虚拟env文件夹。您不应该手动编辑/添加此文件夹中的任何内容。

当我运行pipenv --three时,输出为:

   Creating a virtualenv for this project…
   Pipfile:
   /Users/grahamcrowell/Documents/test_flask_app/Pipfile
   Using /usr/local/bin/python3 (3.7.1) to create virtualenv…
   ✔ Complete 
   Using base prefix '/usr/local/Cellar/python/3.7.1/Frameworks/Python.framework/Versions/3.7'
   New python executable in /Users/grahamcrowell/.local/share/virtualenvs/test_flask_app-l4aYsVUB/bin/python3.7
   Also creating executable in /Users/grahamcrowell/.local/share/virtualenvs/test_flask_app-l4aYsVUB/bin/python
   Installing setuptools, pip, wheel...done.
   Running virtualenv with interpreter /usr/local/bin/python3
   Virtualenv location:        /Users/grahamcrowell/.local/share/virtualenvs/test_flask_app-l4aYsVUB
   Creating a Pipfile for this project…