如何将模块与我的Python脚本打包

3 投票
2 回答
921 浏览
提问于 2025-04-16 10:57

我刚写了一个Python脚本,用来修复一些数据库的问题,这个脚本用到了psycopg2这个模块。但出于某种原因,需要在服务器上运行这个脚本的人说他们无法在他们的服务器上安装psycopg2……有没有办法把这个模块打包到我的脚本里,这样他们就不需要单独安装psycopg2了?这有点像在Java中把一个lib文件夹添加到类路径里吗?

谢谢大家,
安德烈

2 个回答

0

关于无法安装psycopg2的问题,我觉得这可能和数据库服务器的安全政策有关,特别是哪些人可以拥有管理员权限。如果你找不到有权限的人,可以尝试以下两种方法:

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
....
1

首先,创建一个文件夹,把你的脚本放进去。

然后进入这个文件夹,接着运行:

$ easy_install -Z --prefix . psycopg2

这样做应该会在同一个文件夹里生成一个python模块的副本。

最后,把所有的东西打包成一个压缩文件,然后发送出去。

撰写回答