2017-10-03 7 views
0

これは私の初めての仮想環境での作業なので、何か正しいことをしているかどうかはわかりません。私は "フラスコメガチュートリアル"のセットアップガイドに従ってきた新しいモジュールをvenvプロジェクトにインポートできません

$ 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と要求のうちの2つ)を必要とすることがわかるまでは、通常のように仮想環境の外にインストールしましたpip3 install packagename

他のPythonファイルでもパッケージをインポートできますipython3シェルでそれらをインポートすることはできますが、フラスコプロジェクトでインポートすることはできません。私はviews.pyにそれらを配置し、その後./run.py

を実行すると、私はエラー

ImportError: No module named 'yaml' 

を取得し、私はapt-getでそれらを再度インストールしようとしましたが、何も変わりません。次のように

私のフラスコのファイルがあります。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 
+2

フラスコパッケージのように、あなたのvirtualenv内に 'yaml'と' requests'をインストールしてください。 –

+0

as @ J.R。彼らはパッケージがvenvの中にインストールされていることを確認しなければならないと言いました。 IMOこれはvenvがあなたの仮想環境の名前であると仮定してvenv "$ source venv/bin/activate"を有効にした場合に最も簡単です。 – BrettJ

答えて

2

__

run.py

#!flask/bin/python3 
from app import app 
app.run(debug=True) 

あなたはありませんモジュールをインポートすることができますyは、作成した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 
+0

これで修正されました!私はまだvenvがこれらの特定のグローバルなパッケージにアクセスできない理由を理解していませんが、それは他のパッケージでも問題ありませんが、それについての洞察はありますか? – Indigo

+0

どのパッケージを参照していますか? Btw。システムsite-flagを使用して、グローバルリポジトリからパッケージを継承することができます。 'virtualenv - システム - サイトパッケージフラスコ' –

関連する問題