2016-04-02 17 views
2

:Google App Engine Flask Projesi - sys.path.insert, Virtualenv, site paketleri Aşağıdaki kod ile bir Hello World projesi var

import sys 
import os 
sys.path.insert(1, os.path.join(os.path.abspath('.'), 'venv/lib/python2.7/site-packages')) 

from flask import Flask 
app = Flask(__name__) 

@app.route("/") 
def hello(): 
    return "Hello World!" 

if __name__ == "__main__": 
    app.run() 

ilk 3 satır gereklidir, aksi takdirde olsun konsola

from flask import Flask 
ImportError: No module named flask 

olanlar ilk 3 satır halinde bu hata iletisi, özellikle sys.path.insert, biraz çirkin - bunu bildirmek zorunda kalmadan site paketleri ile sistemi yollarına kurabilirsiniz başka bir yolu yoktur Bu şekilde kod?

Herhangi bir fark yaratan bir sanalenv kullanıyorum.

cevap

2

App Engine uygulaması için üçüncü parti kütüphaneleri kurmak için vendoring mekanizmasını kullanmalıdır. Dosyalarınızda sys.path'u değiştirmeye gerek yoktur. Doğrudan uygulama kökünüzde lib dizinini oluşturun ve uygulamanıza bu dizinde kitaplıkları nasıl bulacağınızı appengine_config.py dosyası aracılığıyla söyleyin.

from google.appengine.ext import vendor 

# Add any libraries installed in the "lib" folder. 
vendor.add('lib') 

Bu dizindeki kitaplıkları yüklemek için -t lib bayrağıyla pip kullanın.

$ pip install -t lib [lib-name] 

Ya

$ pip install -t lib -r requirements.txt 

Kontrol dışarı this cevap.

1

Kaldır sys.path.insert

pycharm -> Tercihler -> Proje Tercüman -><browse to your virtualenv>/bin/python - - Yerel ekle> -> Dişli Simgesi tıklayın> Tamam

Artık projenizi flaskapp.py dosyanıza sağ tıklatarak çalıştırdığınızda -> Çalıştırın, virtualenv'in buna bağlı olduğundan emin olun, aşağı oka tıklayarak -> yapılandırmayı düzenle -> kullandığınız virtualenv'i Python interpreter kontrol edin. Daha önce belirtilen PyCharm tarafından kullanılır.

enter image description here enter image description here

+0

Şans yok. En iyi yönettiğim, bu 3 satırı app engine_config.py dosyasına taşımak. –