py2exe - paramiko,ImportError:没有名为paramiko的模块

0 投票
2 回答
1942 浏览
提问于 2025-04-17 20:38

我正在尝试用 py2exe 来编译我的应用程序,setup.py 的代码是:

from distutils.core import setup
import py2exe
import sys

if len(sys.argv) == 1:
    sys.argv.append("py2exe")

setup( options = {"py2exe": {"compressed": 1, "optimize": 2,"dll_excludes": "w9xpopen.exe", "ascii": 0, "bundle_files": 1}},
       zipfile = None,
       console = [
        {
            "script": "app.py",      
            "icon_resources": [(0, "favicon.ico")]
        }
    ],)

编译没有问题,但如果我尝试启动 app.exe,就会出现这个错误:

F:\python\app\dist>app.exe
Traceback (most recent call last):
  File "app.py", line 8, in <module>
ImportError: No module named paramiko

我应用程序的第 8 行是:

import paramiko

我该如何解决这个问题?我需要用 py2exe 编译我的应用程序以便分发!

2 个回答

0

这篇文章可能提供了一种解决问题的方法:

在用py2exe运行一个导入了Paramiko的脚本时,我注意到输出中出现了:

以下模块似乎缺失了…… paramiko……

然后在我运行exe时生成的日志文件中,我看到了这个:

追溯(最近的调用最后):…… ImportError: 没有名为paramiko的模块。这是因为py2exe无法处理egg文件。所以我做的是把egg文件里的paramiko目录提取出来,放到我的site-packages目录里,然后删除了egg文件。现在可以正常工作了,尽管设置函数仍然告诉我:

以下模块似乎缺失了 ['Crypto.PublicKey._fastmath', 'Crypto.Util.winrandom', '_ssl', 'r_hmac']

幸运的是,据我所知,我在任何地方都没有使用这些模块。

0

你还需要在你的setup.py文件里加上import paramiko。

撰写回答