Py2exe 将包(例如 Carbon )添加到 exe



我创建了一个脚本,我在其中使用了这个导入:

import MySQLdb
import sys
import paramiko as pm
import os

现在我尝试使用 py2exe 将此脚本转换为.exe,并且 setup.py:

# setup.py 
from distutils.core import setup
import os
import MySQLdb
import sys
import paramiko
import py2exe
data_files = []
setup(
    name='Worker',
    console=['Script.py'], 
    options={ 
        'py2exe': {
            'packages': [],
            'dist_dir': 'dist', 
            'compressed': True, 
            'includes': ['paramiko', 'MySQLdb'], 
        }
    },
    data_files=data_files 
)

如果我运行安装程序,则从日志中的一部分:

The following modules appear to be missing
['Carbon', 'Carbon.Files', '_imp', '_scproxy', '_sysconfigdata', '_thread', 'builtins', 'cryptography.hazmat.bindings._commoncrypto', 'gssapi', 'importlib.machinery', 'pkg_resources.extern.appdirs', '
pkg_resources.extern.packaging', 'pkg_resources.extern.six', 'pkg_resources.extern.six.moves', 'sspi', 'sspicon', 'win32pipe', 'winreg']
*** binary dependencies ***
Your executable(s) also depend on these dlls which are not included,
you may or may not need to distribute them.

创建了一个 exe,但如果我尝试运行它,我会收到模块丢失的错误。那么我如何将这些模块添加到我的exe/setup中.py?

尝试运行以下代码:

setup.py

from distutils.core import setup
import os
import MySQLdb
import sys
import paramiko
import py2exe
data_files = []
setup(
    name='Worker',
    console=['Script.py'], 
    options={ 
        'py2exe': {
            'packages': ['Carbon', 'Carbon.Files', '_imp', '_scproxy', '_sysconfigdata', '_thread', 'builtins', 'cryptography.hazmat.bindings._commoncrypto', 'gssapi', 'importlib.machinery', 'pkg_resources.extern.appdirs', ' pkg_resources.extern.packaging', 'pkg_resources.extern.six', 'pkg_resources.extern.six.moves', 'sspi', 'sspicon', 'win32pipe', 'winreg'],
            'dist_dir': 'dist', 
            'compressed': True, 
            'includes': ['paramiko', 'MySQLdb'], 
        }
    },
    data_files=data_files 
)

我从这个答案中获取了参考。

我也有类似的问题。 据我所知,碳需要"石墨",而这只是*nix! 因此,在带有py2exe的Windows上没有简单的解决方案...

最新更新