1

我有一个 python 脚本,其中包含一个第三方库:

from docx import Document.

现在,我需要在存在基本 python 但不存在此库的环境中运行此脚本。

在目标环境中安装这个库超出了我的范围,我尝试使用 distutils,但不能走得太远。目标环境只需要运行脚本,不需要安装包。

我来自 Java 背景,在 Java 中,我刚刚导出并创建了一个包含我需要的所有库的 jar 文件。我需要对 python 做类似的事情。

编辑:使用 distutils,我尝试创建一个 setup.py:

from distutils.core import setup
import docx
setup(name='mymodule',
     version='1.0',
     py_modules=['mymodule', docx]
     )

但我不确定这是否有效。

4

3 回答 3

0

您可以在应用程序中包含 docx 的模块。只需将它们分发在一起。

但是 docx 依赖于 lmxl 操作系统包,需要在上面运行安装程序。您不能只是将其复制到目标机器上。

我不确定 PyInstaller 是否支持 docx,尤其是添加它具有非 python 依赖项。

真正使用 pip 或 easy_install 是可行的方法。

于 2015-04-25T19:49:59.113 回答
0

如果您无法制作 pyc 文件并且您无法制作 pyc 文件,那么 PyInstaller 将无法工作,除非您的代码运行时没有出现致命错误。

您可以在除ImportError之外的 try 块中进行导入,但这将导致NameError在引用包的位置。长话短说,如果包是脚本不可或缺的一部分,那么无论如何避免它都可以解决您的问题。您需要依赖项。

您说安装软件包超出了您的范围,那么,是时候扩大您的范围了。Docx 是一个开源包,你可以在 github 上找到这里

您可以下载并运行 setup.py

于 2015-04-25T20:01:22.047 回答
-2

PyInstaller是一个在 Windows、Linux、Mac OS X、Solaris 和 AIX 下将 Python 程序转换(打包)为独立可执行文件的程序。

于 2015-04-25T19:44:11.973 回答