【问题标题】:ValueError: py.__spec__ is not set for pandasValueError: py.__spec__ 没有为 pandas 设置
【发布时间】:2021-09-05 03:13:50
【问题描述】:

我正在尝试从文件 fact.py 中的 python 脚本下面创建一个 exe

import pandas as pd
df=pd.read_csv('C:\py2exe\myfile.csv')
print(df.dtypes)

还有我的 setup.py

from distutils.core import setup

import py2exe
import pandas

setup(console=['fact.py'])

在 anaconda 提示符下,运行下面的代码。

c:\py2exe>python setup.py py2exe

我遇到了错误。

(base) c:\py2exe>python setup.py py2exe
running py2exe
Traceback (most recent call last):
  File "setup.py", line 6, in <module>
    setup(console=['fact.py'])
  File "C:\Users\user\Anaconda3\lib\distutils\core.py", line 148, in setup
    dist.run_commands()
  File "C:\Users\user\Anaconda3\lib\distutils\dist.py", line 966, in run_commands
    self.run_command(cmd)
  File "C:\Users\user\Anaconda3\lib\distutils\dist.py", line 985, in run_command
    cmd_obj.run()
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\distutils_buildexe.py", line 192, in run
    self._run()
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\distutils_buildexe.py", line 272, in _run
    builder.analyze()
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\runtime.py", line 177, in analyze
    target.analyze(mf)
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\runtime.py", line 78, in analyze
    modulefinder.run_script(self.script)
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\mf34.py", line 62, in run_script
    self._scan_code(mod.__code__, mod)
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\mf34.py", line 386, in _scan_code
    self.safe_import_hook(name, mod, fromlist, level)
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\mf34.py", line 122, in safe_import_hook
    self.import_hook(name, caller, fromlist, level)
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\mf34.py", line 104, in import_hook
    module = self._gcd_import(name)
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\mf34.py", line 258, in _gcd_import
    return self._find_and_load(name)
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\mf34.py", line 332, in _find_and_load
    self._load_module(spec, name)
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\mf34.py", line 364, in _load_module
    self._add_module(name, mod)
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\dllfinder.py", line 263, in _add_module
    self.hook(mod)
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\dllfinder.py", line 260, in hook
    mth(self, mod)
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\hooks.py", line 585, in hook_pandas
    finder.import_hook("pandas._libs.tslibs.base")
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\mf34.py", line 104, in import_hook
    module = self._gcd_import(name)
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\mf34.py", line 258, in _gcd_import
    return self._find_and_load(name)
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\mf34.py", line 272, in _find_and_load
    self._gcd_import(parent)
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\mf34.py", line 258, in _gcd_import
    return self._find_and_load(name)
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\mf34.py", line 272, in _find_and_load
    self._gcd_import(parent)
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\mf34.py", line 258, in _gcd_import
    return self._find_and_load(name)
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\mf34.py", line 272, in _find_and_load
    self._gcd_import(parent)
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\mf34.py", line 258, in _gcd_import
    return self._find_and_load(name)
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\mf34.py", line 348, in _find_and_load
    self._scan_code(module.__code__, module)
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\mf34.py", line 386, in _scan_code
    self.safe_import_hook(name, mod, fromlist, level)
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\mf34.py", line 122, in safe_import_hook
    self.import_hook(name, caller, fromlist, level)
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\mf34.py", line 104, in import_hook
    module = self._gcd_import(name)
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\mf34.py", line 258, in _gcd_import
    return self._find_and_load(name)
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\mf34.py", line 272, in _find_and_load
    self._gcd_import(parent)
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\mf34.py", line 258, in _gcd_import
    return self._find_and_load(name)
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\mf34.py", line 348, in _find_and_load
    self._scan_code(module.__code__, module)
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\mf34.py", line 386, in _scan_code
    self.safe_import_hook(name, mod, fromlist, level)
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\mf34.py", line 122, in safe_import_hook
    self.import_hook(name, caller, fromlist, level)
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\mf34.py", line 104, in import_hook
    module = self._gcd_import(name)
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\mf34.py", line 258, in _gcd_import
    return self._find_and_load(name)
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\mf34.py", line 348, in _find_and_load
    self._scan_code(module.__code__, module)
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\mf34.py", line 386, in _scan_code
    self.safe_import_hook(name, mod, fromlist, level)
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\mf34.py", line 122, in safe_import_hook
    self.import_hook(name, caller, fromlist, level)
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\mf34.py", line 104, in import_hook
    module = self._gcd_import(name)
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\mf34.py", line 258, in _gcd_import
    return self._find_and_load(name)
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\mf34.py", line 348, in _find_and_load
    self._scan_code(module.__code__, module)
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\mf34.py", line 386, in _scan_code
    self.safe_import_hook(name, mod, fromlist, level)
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\mf34.py", line 122, in safe_import_hook
    self.import_hook(name, caller, fromlist, level)
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\mf34.py", line 109, in import_hook
    self._handle_fromlist(module, fromlist, caller)
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\mf34.py", line 180, in _handle_fromlist
    self._gcd_import('{}.{}'.format(mod.__name__, x))
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\mf34.py", line 258, in _gcd_import
    return self._find_and_load(name)
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\mf34.py", line 348, in _find_and_load
    self._scan_code(module.__code__, module)
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\mf34.py", line 386, in _scan_code
    self.safe_import_hook(name, mod, fromlist, level)
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\mf34.py", line 122, in safe_import_hook
    self.import_hook(name, caller, fromlist, level)
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\mf34.py", line 109, in import_hook
    self._handle_fromlist(module, fromlist, caller)
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\mf34.py", line 180, in _handle_fromlist
    self._gcd_import('{}.{}'.format(mod.__name__, x))
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\mf34.py", line 258, in _gcd_import
    return self._find_and_load(name)
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\mf34.py", line 348, in _find_and_load
    self._scan_code(module.__code__, module)
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\mf34.py", line 386, in _scan_code
    self.safe_import_hook(name, mod, fromlist, level)
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\mf34.py", line 122, in safe_import_hook
    self.import_hook(name, caller, fromlist, level)
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\mf34.py", line 109, in import_hook
    self._handle_fromlist(module, fromlist, caller)
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\mf34.py", line 180, in _handle_fromlist
    self._gcd_import('{}.{}'.format(mod.__name__, x))
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\mf34.py", line 258, in _gcd_import
    return self._find_and_load(name)
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\mf34.py", line 348, in _find_and_load
    self._scan_code(module.__code__, module)
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\mf34.py", line 386, in _scan_code
    self.safe_import_hook(name, mod, fromlist, level)
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\mf34.py", line 122, in safe_import_hook
    self.import_hook(name, caller, fromlist, level)
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\mf34.py", line 109, in import_hook
    self._handle_fromlist(module, fromlist, caller)
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\mf34.py", line 180, in _handle_fromlist
    self._gcd_import('{}.{}'.format(mod.__name__, x))
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\mf34.py", line 258, in _gcd_import
    return self._find_and_load(name)
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\mf34.py", line 348, in _find_and_load
    self._scan_code(module.__code__, module)
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\mf34.py", line 386, in _scan_code
    self.safe_import_hook(name, mod, fromlist, level)
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\mf34.py", line 122, in safe_import_hook
    self.import_hook(name, caller, fromlist, level)
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\mf34.py", line 109, in import_hook
    self._handle_fromlist(module, fromlist, caller)
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\mf34.py", line 180, in _handle_fromlist
    self._gcd_import('{}.{}'.format(mod.__name__, x))
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\mf34.py", line 258, in _gcd_import
    return self._find_and_load(name)
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\mf34.py", line 348, in _find_and_load
    self._scan_code(module.__code__, module)
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\mf34.py", line 393, in _scan_code
    self._scan_code(c, mod)
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\mf34.py", line 386, in _scan_code
    self.safe_import_hook(name, mod, fromlist, level)
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\mf34.py", line 122, in safe_import_hook
    self.import_hook(name, caller, fromlist, level)
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\mf34.py", line 104, in import_hook
    module = self._gcd_import(name)
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\mf34.py", line 258, in _gcd_import
    return self._find_and_load(name)
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\mf34.py", line 272, in _find_and_load
    self._gcd_import(parent)
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\mf34.py", line 258, in _gcd_import
    return self._find_and_load(name)
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\mf34.py", line 348, in _find_and_load
    self._scan_code(module.__code__, module)
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\mf34.py", line 386, in _scan_code
    self.safe_import_hook(name, mod, fromlist, level)
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\mf34.py", line 122, in safe_import_hook
    self.import_hook(name, caller, fromlist, level)
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\mf34.py", line 107, in import_hook
    module = self._gcd_import(name, package, level)
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\mf34.py", line 258, in _gcd_import
    return self._find_and_load(name)
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\mf34.py", line 348, in _find_and_load
    self._scan_code(module.__code__, module)
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\mf34.py", line 386, in _scan_code
    self.safe_import_hook(name, mod, fromlist, level)
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\mf34.py", line 122, in safe_import_hook
    self.import_hook(name, caller, fromlist, level)
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\mf34.py", line 104, in import_hook
    module = self._gcd_import(name)
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\mf34.py", line 258, in _gcd_import
    return self._find_and_load(name)
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\mf34.py", line 348, in _find_and_load
    self._scan_code(module.__code__, module)
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\mf34.py", line 386, in _scan_code
    self.safe_import_hook(name, mod, fromlist, level)
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\mf34.py", line 122, in safe_import_hook
    self.import_hook(name, caller, fromlist, level)
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\mf34.py", line 107, in import_hook
    module = self._gcd_import(name, package, level)
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\mf34.py", line 258, in _gcd_import
    return self._find_and_load(name)
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\mf34.py", line 348, in _find_and_load
    self._scan_code(module.__code__, module)
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\mf34.py", line 386, in _scan_code
    self.safe_import_hook(name, mod, fromlist, level)
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\mf34.py", line 122, in safe_import_hook
    self.import_hook(name, caller, fromlist, level)
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\mf34.py", line 104, in import_hook
    module = self._gcd_import(name)
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\mf34.py", line 258, in _gcd_import
    return self._find_and_load(name)
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\mf34.py", line 348, in _find_and_load
    self._scan_code(module.__code__, module)
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\mf34.py", line 386, in _scan_code
    self.safe_import_hook(name, mod, fromlist, level)
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\mf34.py", line 122, in safe_import_hook
    self.import_hook(name, caller, fromlist, level)
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\mf34.py", line 104, in import_hook
    module = self._gcd_import(name)
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\mf34.py", line 258, in _gcd_import
    return self._find_and_load(name)
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\mf34.py", line 348, in _find_and_load
    self._scan_code(module.__code__, module)
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\mf34.py", line 393, in _scan_code
    self._scan_code(c, mod)
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\mf34.py", line 393, in _scan_code
    self._scan_code(c, mod)
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\mf34.py", line 386, in _scan_code
    self.safe_import_hook(name, mod, fromlist, level)
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\mf34.py", line 122, in safe_import_hook
    self.import_hook(name, caller, fromlist, level)
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\mf34.py", line 104, in import_hook
    module = self._gcd_import(name)
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\mf34.py", line 258, in _gcd_import
    return self._find_and_load(name)
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\mf34.py", line 348, in _find_and_load
    self._scan_code(module.__code__, module)
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\mf34.py", line 386, in _scan_code
    self.safe_import_hook(name, mod, fromlist, level)
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\mf34.py", line 122, in safe_import_hook
    self.import_hook(name, caller, fromlist, level)
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\mf34.py", line 104, in import_hook
    module = self._gcd_import(name)
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\mf34.py", line 258, in _gcd_import
    return self._find_and_load(name)
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\mf34.py", line 348, in _find_and_load
    self._scan_code(module.__code__, module)
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\mf34.py", line 386, in _scan_code
    self.safe_import_hook(name, mod, fromlist, level)
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\mf34.py", line 122, in safe_import_hook
    self.import_hook(name, caller, fromlist, level)
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\mf34.py", line 109, in import_hook
    self._handle_fromlist(module, fromlist, caller)
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\mf34.py", line 180, in _handle_fromlist
    self._gcd_import('{}.{}'.format(mod.__name__, x))
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\mf34.py", line 258, in _gcd_import
    return self._find_and_load(name)
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\mf34.py", line 348, in _find_and_load
    self._scan_code(module.__code__, module)
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\mf34.py", line 386, in _scan_code
    self.safe_import_hook(name, mod, fromlist, level)
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\mf34.py", line 122, in safe_import_hook
    self.import_hook(name, caller, fromlist, level)
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\mf34.py", line 104, in import_hook
    module = self._gcd_import(name)
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\mf34.py", line 258, in _gcd_import
    return self._find_and_load(name)
  File "C:\Users\user\Anaconda3\lib\site-packages\py2exe\mf34.py", line 303, in _find_and_load
    spec = importlib.util.find_spec(name, path)
  File "C:\Users\user\Anaconda3\lib\importlib\util.py", line 111, in find_spec
    raise ValueError('{}.__spec__ is not set'.format(name)) from None
ValueError: py.__spec__ is not set

我已在多个系统中尝试过此操作并遇到相同的错误。没有熊猫,它工作正常。请在这里帮帮我。提前致谢

【问题讨论】:

    标签: python pandas py2exe


    【解决方案1】:

    问题大概是matplotlib:

    from distutils.core import setup
    
    import py2exe
    import pandas
    import matplotlib
    
    setup(console=['fact.py'],
          data_files=matplotlib.get_py2exe_datafiles())
    

    参考资料:

    答案很旧:它可能适用于旧版本的 matplotlib。可能无法再使用此解决方案。

    【讨论】:

      猜你喜欢
      • 2021-07-12
      • 2019-03-22
      • 2017-12-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-07
      • 2016-06-24
      相关资源
      最近更新 更多