Python无需安装即可共享模块

时间:2013-09-05 09:35:52

标签: python

我想使用一个外部模块(psutil),它有一些C代码和python代码。在我的本地机器上,我使用Mingw安装了这个模块。现在,我想在其他机器上使用这个库(不在每台机器上安装它)。那么我可以将已编译的代码复制到一个公共位置,然后从其他计算机上复制,我将其包含在sys.path中并且应该可以使用它吗?

我一直在寻找使用库的正确方法,而不必在每台机器上安装它,到目前为止我发现使用bdist选项,但是这会创建一个zip文件,我认为它需要不提取在每台机器上。

有人可以帮助我找到应该遵循的最佳方法。我知道,我可以使用Pyinstaller,Py2exe,但我的其他机器都有python,我只是想使用这个模块而不必在任何地方安装它。

2 个答案:

答案 0 :(得分:1)

我使用eggs取得了成功。您可以创建所有其他模块的鸡蛋,将它们放在某个目录中,然后只需将该目录添加到sys.path,然后导入鸡蛋。由于您有C扩展名,you probably need to use pkg_resources module

这很简洁,因为它可以创建其他代码的良好分离和封装。

this answer中的更多信息。

答案 1 :(得分:0)

使用bdist使用正确的选项: 来自文档:

The available formats for built distributions are:

Format      Description                  Notes
gztar       gzipped tar file (.tar.gz)   (1),(3)
ztar        compressed tar file (.tar.Z) (3)
tar         tar file (.tar)              (3)
zip         zip file (.zip)              (2),(4)
rpm         RPM                          (5)
pkgtool     Solaris pkgtool  
sdux        HP-UX swinstall  
wininst     self-extracting ZIP file for Windows (4)
msi         Microsoft Installer.

Notes:
1. default on Unix
2. default on Windows
3. requires external utilities: tar and possibly one of gzip, bzip2, or compress
4. requires either external zip utility or zipfile module (part of the standard Python library since Python 1.6)
5. requires external rpm utility, version 3.0.4 or better (use rpm --version to find out which version you have)