[英]Why is the GAE python SDK using the system's python while in a virtualenv?
我在virtualenv里面。 我按照文檔安裝了GAE python SDK。 根據說明,SDK不是直接在virtualenv上,而是在路徑中。
我已經安裝了一些(非出售,即在virtualenv中)軟件包,我正在啟動GAE開發服務器:
» dev_appserver.py app.yaml
但是在處理請求時崩潰會崩潰:
...
File "/usr/lib/python2.7/importlib/__init__.py", line 37, in import_module
__import__(name)
File "/foo/bar/appengine-django-skeleton/mysite/settings.py", line 105, in <module>
import dj_database_url
ImportError: No module named dj_database_url
我已經驗證的內容:
dev_appserver.py
在第一行#!/usr/bin/env python
,它應該告訴系統使用活動的python(來自virtualenv的那個!) 為什么要使用/usr/lib/python2.7/importlib/__init__.py
? 這不屬於活動的python(virtualenv上的那個)!
有一個項目可以在virtualenv上安裝sdk,但它已經過時了。 有沒有更新的方法來實現這一目標?
除了dizballanze的答案之外 ,我更願意將所有內容安裝在我的virtualenv
,然后將我的virtualenv's site packages
符號鏈接到lib
文件夾,類似於:
ln -s env/lib/python2.7/site-packages lib
這導致我的devappserver
使用virtualenv
包的文件夾
├── env
├── lib -> env/lib/python2.7/site-packages
您可以在https://www.jeffgodwyll.com/posts/2015/google-appegine-vendoring-done-right/上閱讀更多我的方法。
編輯
App引擎上傳項目目錄中的所有文件。 要阻止應用引擎上傳整個virtualenv,請通過app.yaml
的skip files
部分:
skip_files:
- ^env$ # virtual environment's folder
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.