第一次迁移一个 Python 项目,先是发现 virtualenv 真不错,后又发现底下的一堆依赖还是要靠自己……

2013-09-17 08:53:19 +08:00
 rrfeng
大体情况是

数年前……virtualenv 搭建的一个 pylons 程序,系统 rhel 5.4
准备放到 rhel 6.4 的系统上

新系统上 virtualenv + easy_install 之后,运行程序,开始提示两次『某某参数已不再被支持,忽略』
后又提示数据库访问错误之类的

开发的人不在
easy_install 又不能滚回旧版本的软件包
只好从原系统上拷贝了 site-packages ,然后启动程序说找不到某某库 libexpat/openssl/…… 等等无穷尽也


泪流满面。
10328 次点击
所在节点    Python
14 条回复
BOYPT
2013-09-17 08:56:49 +08:00
让你们开发人员写好requirement.txt, pip install -r requirement.txt
cxshun
2013-09-17 08:57:06 +08:00
python的版本啥的都不一样了吗?
geew
2013-09-17 08:58:56 +08:00
用virtualenv配好site-packages, 打包到项目, 以后就一劳永逸拉
lixm
2013-09-17 09:29:45 +08:00
pip 啊
itcook
2013-09-17 09:38:33 +08:00
综合上面的:fabric + virtualenv + pip + requirement.txt 这样?
rrfeng
2013-09-17 10:00:02 +08:00
@BOYPT
@cxshun
@geew
@lixm
@itcook
virtualenv 也可以添加其他软件包么?比如 openssl 里的 libssl 之类的?

如果不能,那 virtualenv 就没法解决这个问题

在系统里安装旧版本的 openssl 是不合适的
loading
2013-09-17 10:12:59 +08:00
对于企业内网的服务器,只能打包啊,整死人
sobigfish
2013-09-17 10:13:12 +08:00
那就加个makefile ,fabric好像也能解决
lijingyu68
2013-09-17 10:34:39 +08:00
第一次用python就知道有virtualenv并将其应用到项目中的感觉好幸福。
rrfeng
2013-09-17 10:35:02 +08:00
@sobigfish
编译旧版 openssl 库文件?
fabric 不是重点……不是嫌手动烦,因为只有一台机器也只有这么一个程序而已。

现在要么重新改程序适应新版 python 包
要么用旧版本的 python 程序包 + 系统依赖的库文件……
bh3887
2013-09-17 16:28:27 +08:00
我一般换机器就整个项目的virtual env打包,没问题啊
BOYPT
2013-09-18 00:11:47 +08:00
@rrfeng pip包编译的。当然如果你系统里面缺开发库那就只能直接手动装了。
keakon
2013-09-18 00:30:36 +08:00
zc.buildout 就可以顶替 virtualenv + pip 了
wuxqing
2013-09-18 08:23:14 +08:00
zc.buildout +1

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/82734

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX