【问题标题】:cannot import from partially initialized module 'noise'无法从部分初始化的模块“噪声”导入
【发布时间】:2021-07-07 13:16:54
【问题描述】:

我在 python3.8 中有当前的“噪音”包 2.2 它似乎有一个循环导入问题; 我不相信我自己的文件夹中有任何类似名称的文件。 我的代码: 进口噪音

结果>

进口噪音 文件“C:\Python\Python38\lib\site-packages\noise\__init__.py”,第 12 行,在 从 。导入_perlin,_simplex ImportError:无法从部分初始化的模块“noise”导入名称“_perlin”(很可能是由于循环导入)(C:\Python\Python38\lib\site-packages\noise\__init__.py)

【问题讨论】:

    标签: python noise


    【解决方案1】:

    来自有关此问题的 Github 问题:

    发生的情况是 Python 更喜欢在相对路径中查找模块,而不是绝对路径。由于您可以从 repo 目录导入噪声,这意味着它可能已经在您的 python 路径(绝对路径)中。

    假设这个存储库位于 foo/noise/ 中,如果您进入一个目录并尝试运行 import noise,那么您现在位于 foo/ 中。 Python 会将本地目录 noise/ 视为一个模块,因为它有一个 init.py 文件,并尝试导入该目录而不是安装在 python 路径中的模块。由于这个模块需要编译 _noise 和 _simplex C 扩展,所以这不起作用。

    我建议从您的项目中删除或重命名此 repo 目录,如果您还没有安装噪声,请使用 pip 安装。 (点安装噪音)

    如果你真的想从源代码安装而不是安装到你的系统中,那么,在 noise/ 存储库中,运行 python setup.py build 以在本地构建并获取 dist/lib*/noise/ 并将该目录放入你的项目目录。

    或者使用 noise/ 存储库中的 python setup.py install 从源代码安装到您的 Python 路径中。

    【讨论】:

    • 我安装了点子噪音。我现在将包库的绝对路径作为我的 sys.path 中的第一个路径,结果与 . import perlin, _simplex ImportError: cannot import name '_perlin' from partial initialized module 'noise'(很可能是由于循环导入)(C:\Python\Python38\lib\site-packages\noise__init_ .py)
    猜你喜欢
    • 2020-10-03
    • 1970-01-01
    • 2020-07-21
    • 1970-01-01
    • 2021-04-03
    • 2021-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多