cx_freeze build .exe файл производит ModuleNotFoundError: нет модуля с именем 'http.cookies' - PullRequest
0 голосов
/ 01 ноября 2019

Я пытаюсь создать файл .exe моего скрипта python, используя cx_freeze. Проблема, с которой я сталкиваюсь, заключается в следующем.

  1. cx_freeze может создать файл .exe, но во время сборки выводит сообщения, что он не может найти определенные модули. См. Часть распечатки ниже.
    Missing modules:
    ? M2Crypto.six.moves.http_client imported from M2Crypto.httpslib
    ? M2Crypto.six.moves.http_cookies imported from M2Crypto.AuthCookie
    ? M2Crypto.six.moves.socketserver imported from M2Crypto.SSL.SSLServer
    ? M2Crypto.six.moves.urllib_parse imported from M2Crypto.httpslib, M2Crypto.m2urllib2
    ? M2Crypto.six.moves.urllib_response imported from M2Crypto.m2urllib, M2Crypto.m2urllib2
    ? M2Crypto.six.moves.xmlrpc_client imported from M2Crypto.m2xmlrpclib
    ? StringIO imported from M2Crypto.six
    ? _builtin_ imported from M2Crypto.m2crypto
    ? _main_ imported from bdb, pdb
    ? _frozen_importlib imported from importlib, importlib.abc
    ? _frozen_importlib_external imported from importlib, importlib._bootstrap, importlib.abc
    ? _m2crypto imported from M2Crypto.m2crypto
    ? _posixsubprocess imported from subprocess
    ? _scproxy imported from urllib.request
    ? _winreg imported from platform
    ? grp imported from shutil, tarfile
    ? java.lang imported from platform
    ? org.python.core imported from copy, pickle
    ? os.path imported from M2Crypto.m2crypto, os, pkgutil, py_compile, tracemalloc, unittest, unittest.util
    ? posix imported from os
    ? pwd imported from getpass, http.server, netrc, posixpath, shutil, tarfile, webbrowser
    ? termios imported from getpass, tty
    ? twisted.internet.interfaces imported from M2Crypto.SSL.TwistedProtocolWrapper
    ? twisted.internet.reactor imported from M2Crypto.SSL.TwistedProtocolWrapper
    ? twisted.protocols.policies imported from M2Crypto.SSL.TwistedProtocolWrapper
    ? urllib2 imported from M2Crypto.m2urllib2
    ? vms_lib imported from platform
    ? xmlrpclib imported from M2Crypto.m2xmlrpclib
    ? zope.interface imported from M2Crypto.SSL.TwistedProtocolWrapper
This is not necessarily a problem - the modules may not be needed on this platform.
После сборки файла .exe при попытке его запустить я получаю ModuleNotFoundError
    Traceback (most recent call last):
      File "C:\Users\masta\Miniconda3\lib\site-packages\cx_Freeze\initscripts\__startup__.py", line 40, in run
        module.run()
      File "C:\Users\masta\Miniconda3\lib\site-packages\cx_Freeze\initscripts\Console.py", line 23, in run
        exec(code, {'_name_': '_main_'})
      File "decrypt_verify.py", line 3, in <module>
      File "C:\Users\masta\Miniconda3\lib\site-packages\M2Crypto\__init__.py", line 30, in <module>
        from M2Crypto import (ASN1, AuthCookie, BIO, BN, DH, DSA, EVP, Engine, Err,
      File "C:\Users\masta\Miniconda3\lib\site-packages\M2Crypto\AuthCookie.py", line 12, in <module>
        from M2Crypto.six.moves.http_cookies import SimpleCookie  # pylint: disable=no-name-in-module,import-error
      File "C:\Users\masta\Miniconda3\lib\site-packages\M2Crypto\six.py", line 203, in load_module
        mod = mod._resolve()
      File "C:\Users\masta\Miniconda3\lib\site-packages\M2Crypto\six.py", line 115, in _resolve
        return _import_module(self.mod)
      File "C:\Users\masta\Miniconda3\lib\site-packages\M2Crypto\six.py", line 82, in _import_module
        __import__(name)
    ModuleNotFoundError: No module named 'http.cookies'

Может кто-нибудь объяснить мне, как эта ошибка вызвана и что я могу сделать, чтобы ее устранить? это? * * 1013

Ответы [ 2 ]

0 голосов
/ 04 ноября 2019

Я решил проблему, добавив библиотеки M2crypto и http к аргументу параметров настройки cx_freeze. Это включает пакеты при сборке .exe файла

setup(name='x',
      version='0.1',
      description='xxx',
      options={"build_exe": {"packages": ["M2Crypto", "http"], "excludes": [""]}},
      executables=[Executable("x_script.py")])
0 голосов
/ 03 ноября 2019

http.cookies - это базовая библиотека в каждой установке Python 3. Если ваша программа не может ее найти, ваша установка Python 3 не работает.

...