
本地机器 A , 写一个数据库更新的脚本依赖 mysql 模块。
迁移到生产线机器 B , 没有 pip ,没有 setuptools , 没有 root 权限,没有 mysql 模块..
virualenv 试过了,说找不到 CGLIB_2.14 (required by ./python2.7)
蛋疼了..
1 msg7086 2015-12-02 14:55:39 +08:00 没有 root 不可怕,依赖不够才是大问题。 |
2 est 2015-12-02 15:23:19 +08:00 没 root 不可怕。可怕的是只有 python 2.6 。 virtualenv 也帮不了忙。 |
3 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 装库吧,不行再编译 |
4 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/pyenv 和 https://pip.pypa.io/en/latest/installing/ |
5 iyaozhen 2015-12-02 15:29:38 +08:00 自带 python 环境。生产线的机器系统一般都一样。一个包,到处用 |
6 blank4me 2015-12-02 15:35:19 +08:00 https://pypi.python.org/pypi/bbfreeze 用这个可以自动识别依赖,打包出一个可以直接运行的 python 出来。 但是这个 python 只保证能跑你的程序,而且修改.py 不会生效,需要重新打包。 |
7 P0P 2015-12-02 15:39:31 +08:00 试一下 anaconda 封装的 python( https://www.continuum.io/downloads), 里面带了一些它自己的 c 拓展。 |
8 Zzzzzzzzz 2015-12-02 15:40:29 +08:00 A 机器 pip freeze 导出包名, B 用普通用户编译一个和 A 相同版本的 python, 装好 pip 后再安装这些库, 没 root 不要紧的. glibc 不一致打包或者 virtualenv 目录迁移都是不行的。 |
9 tinyproxy 2015-12-02 20:37:50 +08:00 求管理员装个 docker |