ImportError:无法导入名称“_methods”

Posted

技术标签:

【中文标题】ImportError:无法导入名称“_methods”【英文标题】:ImportError:cannot import name '_methods' 【发布时间】:2017-06-14 15:31:29 【问题描述】:

已经为我的 tkinter GUI 创建了一个可执行文件,尝试运行它时会显示以下错误: from.import_methods ImportError:cannot import name '_methods' 窗口上似乎有很多关于 numpy 的内容。不知道为什么会这样,因为我还没有在项目中使用 numpy。

我的 setup.py 代码是:

import sys
import os.path
from cx_Freeze import setup, Executable


#include_files = ['autorun.inf']
PYTHON_INSTALL_DIR = os.path.dirname(os.path.dirname(os.__file__))
os.environ['TCL_LIBRARY'] = os.path.join(PYTHON_INSTALL_DIR, 'tcl', 'tcl8.6')
os.environ['TK_LIBRARY'] = os.path.join(PYTHON_INSTALL_DIR, 'tcl', 'tk8.6')

base = None

if sys.platform == 'win32':
    base = 'Win32GUI'

#os.environ['TCL_LIBRARY'] = r'C:\Users\DonikuY\AppData\Local\Programs\Python\Python36-32\tcl\tcl8.6'
#os.environ['TK_LIBRARY'] = r'C:\Users\DonikuY\AppData\Local\Programs\Python\Python36-32\tcl\tk8.6'

executables = [
    Executable('VacuumPumpGUI.py', base=base)
]


options = 
    'build_exe': 
        'include_files':[
            os.path.join(PYTHON_INSTALL_DIR, 'DLLs', 'tk86t.dll'),
            os.path.join(PYTHON_INSTALL_DIR, 'DLLs', 'tcl86t.dll'),
         ],
    ,


setup(name="VacuumPumpGUI",
      version="0.1",
      description="Vacuum pump serial GUI.",
      options=options,
      executables=executables
      )

【问题讨论】:

请不要发布堆栈跟踪的屏幕截图。花点时间复制和粘贴并正确格式化。 嗯,最快的解决方案是卸载 numpy 看看是否能解决问题。然后您需要花时间阅读文档以确保您正确使用冻结。我自己没有使用 freeze ,但我认为 freeze 不应该对未导入的库做任何事情。 也看看这个帖子how-to-create-exe-file-in-python-using-cx-freeze。 谢谢,我会看看删除 numpy 和其他帖子并通知你。 您好,我已经删除了 numpy,但仍然无法正常工作。 matplotlib 库似乎存在问题,因为可执行文件在没有图表的情况下构建和运行良好。有什么想法吗? 【参考方案1】:

这是 cx_freeze 中的 known issue。

作为一种解决方法,您可以将其包含在构建选项中:

    options = 
        'build_exe': 
            'includes':['atexit', 'numpy.core._methods', 'numpy.lib.format'],
       
   

【讨论】:

以上是关于ImportError:无法导入名称“_methods”的主要内容,如果未能解决你的问题,请参考以下文章

ImportError:无法导入名称“WebClient”

ImportError:无法导入名称“AFAVSignature”

ImportError:无法导入名称“评估”(来自意外导入评估)

Django 'ImportError: 无法导入名称 url'

ImportError:导入 PCA 时无法导入名称“LatentDirichletAllocation”[关闭]

如何修复“ImportError:无法导入名称'StringIO'”