【问题标题】:How to package a module with my python script如何用我的 python 脚本打包一个模块
【发布时间】:2011-01-31 20:16:49
【问题描述】:

我刚刚编写了一个 python 脚本来修复一些数据库问题,它使用了 psycopg2 模块。出于某种原因,需要(在服务器上)运行它的人声称他们无法在他们的服务器机器上安装 psycopg2 ......有没有一种方法可以将该模块打包到我的脚本中,这样他们就不会必须安装 psycopg2 吗?类似于将 lib 文件夹添加到 Java 中的类路径?

提前谢谢, 安德烈

【问题讨论】:

  • 如果整个模块是用 Python 编写的并且没有额外的依赖项,你应该可以把它放在同一个文件夹中。
  • 服务器运行的是什么操作系统?和你机器上的操作系统一样吗?
  • 服务器运行的是CentOS,我是mac。
  • @piro 大声笑,这就是我们最终要做的:P
  • 太棒了!如果您提供补丁,我将能够在我的许多项目中使用它! :D

标签: python postgresql packaging psycopg2


【解决方案1】:

创建一个目录,把你的脚本放进去。

cd 到那个目录,然后运行:

$ easy_install -Z --prefix . psycopg2

这应该会在同一目录中生成 python 模块的副本。

把它全部压缩起来,然后把整个东西寄出去。

【讨论】:

    【解决方案2】:

    至于无法安装 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
    ....
    

    【讨论】:

      猜你喜欢
      • 2013-11-06
      • 2020-07-10
      • 2018-05-22
      • 2020-06-22
      • 1970-01-01
      • 2020-06-12
      • 2014-07-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多