博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SAE 安装未包含的第三方依赖包
阅读量:5332 次
发布时间:2019-06-14

本文共 1246 字,大约阅读时间需要 4 分钟。

如何使用virtualenv管理依赖关系

当你的应用依赖很多第三方包时,可以使用virtualenv来管理并导出这些依赖包,流程如下:

首先,创建一个全新的Python虚拟环境目录ENV,启动虚拟环境。

$ virtualenv --no-site-packages ENV$ source ENV/bin/activate(ENV)$

可以看到命令行提示符的前面多了一个(ENV)的前缀,现在我们已经在一个全新的虚拟环境中了。

使用pip安装应用所依赖的包并导出依赖关系到requirements.txt。

(ENV)$ pip install Flask Flask-Cache Flask-SQLAlchemy(ENV)$ pip freeze > requirements.txt

编辑requirements.txt文件,删除一些sae内置的模块,eg. flask, jinja2, wtforms。

使用dev_server/bundle_local.py工具,将所有requirements.txt中列出的包导出到本地目录virtualenv.bundle目录中。如果文件比较多的话,推荐压缩后再上传。

(ENV)$ bundle_local.py -r requirements.txt(ENV)$ cd virtualenv.bundle/(ENV)$ zip -r ../virtualenv.bundle.zip .

将virutalenv.bundle目录或者virtualenv.bundle.zip拷贝到应用的目录下。

修改index.wsgi文件,在导入其它模块之前,将virtualenv.bundle目录或者virtualenv.bundle.zip添加到module的搜索路径中,示例代码如下:

import osimport sysapp_root = os.path.dirname(__file__) # 两者取其一 sys.path.insert(0, os.path.join(app_root, 'virtualenv.bundle')) sys.path.insert(0, os.path.join(app_root, 'virtualenv.bundle.zip'))  //坑爹的地方来了,最好不要使用zip压缩包,会报错,使用上面的文件夹最好

到此,所有的依赖包已经导出并加入到应用的目录里了。

更多virtualenv的使用可以参考其官方文档。 

注解

  1. 请删除requirements.txt中的wsgiref==0.1.2这个依赖关系,否则可能导致 bundle_local.py导出依赖包失败。
  2. 有些包是not-zip-safe的,可能不工作,有待验证。 含有c扩展的package 不能工作。

 

试用新浪SAE-python云平台

转载于:https://www.cnblogs.com/carlo/p/4324559.html

你可能感兴趣的文章
c++ _int64 转成string
查看>>
线性表类型的实现——————链表映像
查看>>
10.并发包阻塞队列之ArrayBlockingQueue
查看>>
转载 SpringMVC详解(一)------入门实例
查看>>
第五周助教小结
查看>>
封装一个通过类名获取对象的函数
查看>>
P2037 电话号码
查看>>
NoClassDefFoundError && ClassNotFoundException
查看>>
JavaEE框架整合之基于注解的SSH整合
查看>>
力扣——二叉树的层平均值
查看>>
Android上dip、dp、px、sp等单位说明(转)
查看>>
32个Chrome 针对网页设计师和开发人员扩展
查看>>
urllib2.urlopen超时问题
查看>>
BAT等互联网公司薪资分享
查看>>
jsp forward 动作标签
查看>>
Hide C# winform App Window When Started by Task Scheduler
查看>>
中颖电子AD操作
查看>>
约瑟夫问题解决
查看>>
Android他们控制的定义(一)
查看>>
STL algorithm算法min,min_element(35)
查看>>