【问题标题】:Including a C++ executable when freezing a Python script with PyInstaller使用 PyInstaller 冻结 Python 脚本时包含 C++ 可执行文件
【发布时间】:2018-07-27 14:52:44
【问题描述】:

我尝试通读 PyInstaller 文档并使用规范文件以及 Google/SO,但没有找到任何明确的答案。

我使用 Biopython 编写了一个 python 脚本,并使用 PyInstaller 将它变成了一个可执行文件,它工作正常。然而,该脚本使用了一个 Biopython 函数 (NcbiBlastnCommandline()),它是 NCBI Blast+ blastn 程序(用 C++ 编写)的包装器,目前用户仍需要在本地安装 NCBI Blast+。

是否可以将 C++ .exe 与其他文件一起打包,因此最终用户只需要下载我的可执行文件而无需其他任何东西?

【问题讨论】:

    标签: c++ executable bioinformatics biopython blast


    【解决方案1】:

    阅读教程中关于adding binary files的部分:

    要添加二进制文件,请创建一个描述所需文件的元组列表。将元组列表分配给 Analysis 的 binaries= 参数。

    a = Analysis(...
         binaries=[ ( '/path/to/blastn.exe', 'blastn.exe' ) ],
         ...
    

    【讨论】:

    • 谢谢,我之前试过这个,但只提供了 blast bin 文件夹的路径,而 pyinstaller 显然无法用它构建可执行文件。使用这个有效(尽管系统现在似乎无法在子进程中找到 biopython 调用的爆炸文件,但我想这是一个单独的问题)。
    猜你喜欢
    • 1970-01-01
    • 2016-12-12
    • 2016-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-22
    • 1970-01-01
    相关资源
    最近更新 更多