【问题标题】:Py2exe Adding package ( e.g. Carbon ) to exePy2exe 将包(例如 Carbon)添加到 exe
【发布时间】:2017-02-09 08:18:08
【问题描述】:

我创建了一个使用此导入的脚本:

import MySQLdb
import sys
import paramiko as pm
import os

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

# 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 中的空包键中添加 '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'

标签: python python-2.7 py2exe paramiko


【解决方案1】:

尝试运行此代码:

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 

)

我从这个Answer中获取了参考。

【讨论】:

  • 现在我得到错误:ImportError: No module named Carbon
  • 尝试安装 Carbon 模块。如果可能的话,用你的脚本代码编辑你的问题。
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-09-15
    • 2014-05-02
    • 1970-01-01
    • 2017-10-11
    • 2023-04-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多