cx_freeze + selenium + python 3:没有名为“httplib”的模块

Posted

技术标签:

【中文标题】cx_freeze + selenium + python 3:没有名为“httplib”的模块【英文标题】:cx_freeze + selenium + python 3 : No module named 'httplib' 【发布时间】:2015-07-11 05:42:09 【问题描述】:

我试图用 selenium 构建我的应用程序,我有这个 setup.py:

import sys
from cx_Freeze import setup, Executable


path_drivers = ( "C:\Python34\Lib\site-packages\PyQt5\plugins\sqldrivers\qsqlmysql.dll", "sqldrivers\qsqlmysql.dll" )

includes = ["atexit","PyQt5.QtCore","PyQt5.QtGui", "PyQt5.QtWidgets","PyQt5.QtSql", "selenium"]
includefiles = [path_drivers]

excludes = [
'_gtkagg', '_tkagg', 'bsddb', 'curses', 'email', 'pywin.debugger',
'pywin.debugger.dbgcon', 'pywin.dialogs', 'tcl',
'Tkconstants', 'Tkinter'
]
packages = ["os"]
path = []

# Dependencies are automatically detected, but it might need fine tuning.
build_exe_options = 
                 "includes":      includes,
                 "include_files": includefiles,
                 "excludes":      excludes,
                 "packages":      packages,
                 "path":          path


# GUI applications require a different base on Windows (the default is for a
# console application).
base = None
exe = None
if sys.platform == "win32":
    exe = Executable(
      script="main.py",
      initScript = None,
      base=None,
      targetName="zeus.exe",
      compress = True,
      copyDependentFiles = True,
      appendScriptToExe = False,
      appendScriptToLibrary = False,
      icon = None
    )

setup(
      name = "telll",
      version = "0.1",
      author = 'me',
      description = "My GUI application!",
      options = "build_exe": build_exe_options,
      executables = [exe]
)

构建完成没有问题,但是当我运行我的应用程序时:

ImportError: No module named 'httplib'

我的配置: Python 3.4.3 32 位。 PyQt5 硒 2.46.0

谢谢你的帮助

【问题讨论】:

尝试将 httplib 添加到 setup.py 中的“包”列表中 @ThomasK httplib 是来自 python2 的库,我使用 python3 因为 PyQt5 使用 python3,但 selenium 需要 httplib。当我运行我的应用程序表单控制台时,我不知道如何解决这个问题。 错误信息是否有回溯?如果是这样,你也能证明吗? 【参考方案1】:

httplib 不在您的目录路径中或尚未导入。

尝试将这两个脚本中的任何一个添加到您的代码中:

    导入httplib httplib = httplib(config_file="你的 httplib 目录路径")

【讨论】:

出现问题是因为 python3 selenium 使用了 httplib2 但由于某种原因需要 httplib 但在 python3 中完美运行。然而,当使用 cx_Freeze 创建构建时,问题是 httplib,我不知道如何解决这个问题并结束应用程序的部署。

以上是关于cx_freeze + selenium + python 3:没有名为“httplib”的模块的主要内容,如果未能解决你的问题,请参考以下文章

cx_freeze 可执行文件无法与 Geckodriver 配合使用

Python 3.4 cx_freeze [WinError 5] 使用 Selenium - 仅在其他机器上

.py 到 .exe 使用 cx_freeze 导致错误

将 .py 转换为 .exe 时出现 cx_Freeze 错误

cx_Freeze 不包含子目录中的 .py 文件

在 Mac 上使用 cx_Freeze 从 .py 创建 .exe