cx_freeze plotly 错误,Python 3.6

cx_freeze error with plotly, Python 3.6

我在使用 Anaconda 3 和 cx_freeze 生成可执行文件时遇到问题。也许你们可以启发我的想法。我可以生成 .exe,但是当我 运行 它时,我得到这个:

Traceback (most recent call last):
  File "C:\ProgramData\Anaconda3\lib\site-            
packages\cx_Freeze\initscripts\__startup__.py", line 14, in run
    module.run()
  File "C:\ProgramData\Anaconda3\lib\site-
packages\cx_Freeze\initscripts\Console.py", line 26, in run
    exec(code, m.__dict__)
  File "main.py", line 15, in <module>
  File "C:\Users\a\Documents\b\c\plot_3d.py", line 
1, in <module>
    import plotly as py
  File "C:\ProgramData\Anaconda3\lib\site-packages\plotly\__init__.py", line 
31, in <module>
    from plotly import (plotly, dashboard_objs, graph_objs, grid_objs, 
tools,
  File "C:\ProgramData\Anaconda3\lib\site-
packages\plotly\graph_objs\__init__.py", line 14, in <module>
    from plotly.graph_objs.graph_objs import *  # this is protected with 
__all__
  File "C:\ProgramData\Anaconda3\lib\site-
packages\plotly\graph_objs\graph_objs.py", line 34, in <module>
    from plotly import exceptions, graph_reference
  File "C:\ProgramData\Anaconda3\lib\site-
packages\plotly\graph_reference.py", line 9, in <module>
    from pkg_resources import resource_string
ModuleNotFoundError: No module named 'pkg_resources'

看来我的剧情有问题。搜索了一段时间后,我仍然找不到解决方案。这是我的 setup.py:

import sys

kwargs = {"name": "x",
          "version": "1.2",
          "author": "x",
          "author_email": "x",
          "description": "x",
          "zip_safe": False
          }

try:
    if sys.argv[1] == "build":
        import os
        from setuptools import find_packages
        from cx_Freeze import setup, Executable

        os.environ["TCL_LIBRARY"] = r"C:\ProgramData\Anaconda3\tcl\tcl8.6"
        os.environ["TK_LIBRARY"] = r"C:\ProgramData\Anaconda3\tcl\tk8.6"

        kwargs["options"] = {
            "build_exe": {
                "packages": find_packages() + ["os", "numpy", "plotly"],
                "includes": ["numpy", "plotly"],
        }
    }
    kwargs["executables"] = [Executable(r"main.py", base="console")]

    setup(**kwargs)
except Exception as e:
    print(e)

我试过了,有什么建议吗?谢谢。

解决方案是将每个包都包含在:

"includes": ["numpy", "plotly", "pkg_resources", "appdirs", "packaging.specifiers", "packaging.requirements"]