提问者:小点点

如何在python中将外部库包含在一个包中,就像maven在Java中所做的那样?


我有一个python项目,该项目引用了paramiko和其他外部库,目标是以这样一种方式进行打包,即最终发行版(Zip/Folder anything)将外部库和我的项目代码包含在一个单独的地方,以便我可以将其放在没有外部internet连接的服务器上。

应该是这样的:

最终文件夹=(myproject+paraniko+python 3)

都在一个地方,并具有正确的类路径设置。


共1个答案

匿名用户

请尝试cx_freeze。 它自动将所有必要的带有可执行文件的文件打包在一个文件夹中,因此您可以将其压缩并部署到任何地方。

如果检测库/包失败,可以使用安装脚本通过'build_options'包含包名称。

下面是上面创建的cx_freeze示例安装脚本。 有关更多选项,请参阅手册。

Setup.py:

from cx_Freeze import setup, Executable
import sys

version = "0.0.6"

build_options = {
    "packages": [],
    "excludes": [],
    "build_exe": "X:\\builds\\",
    "include_files": ["Sequence_Sample/", "icons/"],
}

base = "Win32GUI" if sys.platform == "win32" else None

executables = [Executable("MainUIController.py", base=base, targetName="pym")]

setup(
    name="Python Image Macro Project",
    version=version,
    description="Image Based macro project.",
    options={"build_exe": build_options},
    executables=executables,
)

或者,如果cx_freeze不能为您工作,请查找PyInstaller。