这是我第一次使用虚拟环境,所以我不确定我做的是什么。我遵循了“flask mega tutorial”中的设置指南
$ python3 -m venv flask
$ flask/bin/pip3 install flask
$ flask/bin/pip3 install flask-login
$ flask/bin/pip3 install flask-openid
$ flask/bin/pip3 install flask-mail
$ flask/bin/pip3 install flask-sqlalchemy
$ flask/bin/pip3 install sqlalchemy-migrate
$ flask/bin/pip3 install flask-whooshalchemy
$ flask/bin/pip3 install flask-wtf
$ flask/bin/pip3 install flask-babel
$ flask/bin/pip3 install guess_language
$ flask/bin/pip3 install flipflop
$ flask/bin/pip3 install coverage
一切都很好。直到我意识到我需要一个新的包(实际上有两个,yaml和request)我在虚拟环境之外安装了pip3 install packagename
我可以在任何其他python文件中导入包,我可以在ipython3 shell中导入它们,但是我无法在我的flask项目中导入它们。如果我将它们放在views.py中,然后执行./run.py
我收到错误
ImportError: No module named 'yaml'
我已经尝试使用apt-get
再次安装它们,但没有任何变化。
我的烧瓶文件如下:
run.py
#!flask/bin/python3
from app import app
app.run(debug=True)
__ init __。py
from flask import Flask
app = Flask(__name__)
app.config.from_object('config')
from app import views
veiws.py
from flask import Flask, render_template, request, session, redirect, url_for
from app import app
import time, os, subprocess
import yaml
## other stuff that works until I try to import yaml or any new package
答案 0 :(得分:2)
您无法导入模块,因为它们未安装在您创建的virtualenv flask
中。通过以与其他flask
模块相同的方式安装它来解决这个问题,即。按照你的方法:
$ python3 -m venv flask
$ flask/bin/pip3 install flask
$ flask/bin/pip3 install flask-login
$ flask/bin/pip3 install flask-openid
$ flask/bin/pip3 install flask-mail
$ flask/bin/pip3 install flask-sqlalchemy
$ flask/bin/pip3 install sqlalchemy-migrate
$ flask/bin/pip3 install flask-whooshalchemy
$ flask/bin/pip3 install flask-wtf
$ flask/bin/pip3 install flask-babel
$ flask/bin/pip3 install guess_language
$ flask/bin/pip3 install flipflop
$ flask/bin/pip3 install coverage
$ flask/bin/pip3 install yaml
$ flask/bin/pip3 install requests