cx_freeze error with plotly,Python 3.6

问题描述:

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

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) 

我试过this solution without success,有什么建议吗?谢谢。

+0

'ModuleNotFoundError:无模块命名为“pkg_resources'。你能确认这个文件存在于你的env路径中吗? – Noqomo

+0

@Noqomo原谅我,你指的是哪个文件?如果你的意思是graph_reference,是它在C:\ ProgramData \ Anaconda3 \ Lib \ site-packages \ plotly –

+0

嗨,我指的是你的'pkg_resources'似乎丢失。我会尝试'pip install --upgrade setuptools'和'pip install --upgrade distribute'来确保它没有损坏。 – Noqomo

的解决方案是包括每包:

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