python 项目如何迁移到没有 root 权限的机器上跑

2015-12-02 14:30:15 +08:00
 chinajik

本地机器 A , 写一个数据库更新的脚本依赖 mysql 模块。

迁移到生产线机器 B , 没有 pip ,没有 setuptools , 没有 root 权限,没有 mysql 模块..

virualenv 试过了,说找不到 CGLIB_2.14 (required by ./python2.7)

蛋疼了..

2731 次点击
所在节点    Python
9 条回复
msg7086
2015-12-02 14:55:39 +08:00
没有 root 不可怕,依赖不够才是大问题。
est
2015-12-02 15:23:19 +08:00
没 root 不可怕。可怕的是只有 python 2.6 。 virtualenv 也帮不了忙。
VYSE
2015-12-02 15:27:00 +08:00
GLIBC_2.14 (required by ./python2.7)明显是在高版本 GLIBC LINUX 下编译的 executable 放到 CENTOS 6 这种带 2.12 的 GLIBC 的系统下跑导致的。
PYTHON 和用 C EXT 的库都得在相同环境下编译拿来用,不然就麻烦些改运行时的 LD_LIBRARY 用 FEDORA 15 的 2.13.90 版本 GLIBC 全套。

不过你还是用 ACTIVEPYTHON 和他家的 PYPM 装库吧,不行再编译
wlsnx
2015-12-02 15:28:48 +08:00
你试试用 pyenv 编译一个 2.7 的,再在 pypi.python.org 下载 get-pip.py 安装 pip 。这样就可以在没有 root 权限的情况下使用 python2.7 和 pip 了。
参考 https://github.com/yyuu/pyenvhttps://pip.pypa.io/en/latest/installing/
iyaozhen
2015-12-02 15:29:38 +08:00
自带 python 环境。生产线的机器系统一般都一样。一个包,到处用
blank4me
2015-12-02 15:35:19 +08:00
https://pypi.python.org/pypi/bbfreeze
用这个可以自动识别依赖,打包出一个可以直接运行的 python 出来。
但是这个 python 只保证能跑你的程序,而且修改.py 不会生效,需要重新打包。
P0P
2015-12-02 15:39:31 +08:00
试一下 anaconda 封装的 python( https://www.continuum.io/downloads), 里面带了一些它自己的 c 拓展。
Zzzzzzzzz
2015-12-02 15:40:29 +08:00
A 机器 pip freeze 导出包名, B 用普通用户编译一个和 A 相同版本的 python, 装好 pip 后再安装这些库, 没 root 不要紧的.

glibc 不一致打包或者 virtualenv 目录迁移都是不行的。
tinyproxy
2015-12-02 20:37:50 +08:00
求管理员装个 docker

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

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

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

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

© 2021 V2EX