我刚刚编写了一个 python 脚本来修复一些数据库问题,它使用了 psycopg2 模块。出于某种原因,需要(在服务器上)运行它的人声称他们无法在他们的服务器机器上安装 psycopg2 ......有没有一种方法可以将该模块打包到我的脚本中,这样他们就不会必须安装 psycopg2 吗?类似于将 lib 文件夹添加到 Java 中的类路径的东西?
提前谢谢,安德烈
我刚刚编写了一个 python 脚本来修复一些数据库问题,它使用了 psycopg2 模块。出于某种原因,需要(在服务器上)运行它的人声称他们无法在他们的服务器机器上安装 psycopg2 ......有没有一种方法可以将该模块打包到我的脚本中,这样他们就不会必须安装 psycopg2 吗?类似于将 lib 文件夹添加到 Java 中的类路径的东西?
提前谢谢,安德烈
建立一个目录,把你的脚本放进去。
cd 进入该目录,然后运行:
$ easy_install -Z --prefix . psycopg2
这应该会在同一目录中生成 python 模块的副本。
把它全部拉上拉链,然后把整个东西都寄出去。
至于无法安装 psycopg2,我确定这与关于谁可以在数据库服务器上拥有 root 访问权限的安全策略有关。如果您找不到具有必要权限的人,有两种方法可以为这只特定的猫剥皮:
1)您可以使用 py2exe 构建一个 exe,这样您就知道脚本的所有依赖项都在那里并且可用。这也将允许您避免处理任何 python 不兼容问题。您没有提及您的 python 版本(2.5、2.6、2.7、3.1?),也没有提及服务器上的版本。
2) 或者您可以将 psycopg2 模块放入其自己的目录 (c:\mypymods) 并在导入之前将路径添加到 sys.path。
import sys
sys.path = sys.path.append("c:/mypymods")
import psycopg2
....