2017-08-11 62 views
1

我遇到了使用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

回答

0

的解決方案是包括每包:

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