繁体   English   中英

Python + PyCharm 文件结构问题:AttributeError: 'module' object 没有属性 'X'

[英]Python + PyCharm File Structure issue: AttributeError: 'module' object has no attribute 'X'

我有以下文件结构:

  • 主程序
  • 加密货币
    • 获取生成器.py
  • 工具
    • RecHash.py
    • ToInteger.py
    • 工具.py

GetGenerators.py 看起来像这样:

import unittest
import os, sys
import gmpy2
from gmpy2 import mpz

sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
from Utils.Utils           import AssertInt, AssertClass
from Utils.ToInteger       import ToInteger
from Utils.RecHash         import RecHash    

def GetGenerators(n):
    AssertInt(n)
    assert n >= 0, "n must be greater than or equal 0"

    generators = []

    # ... irrelevant code...

    return generators


class GetGeneratorsTest(unittest.TestCase):
    def testGetGenerators(self):
        self.assertEqual(len(GetGenerators(50)), 50)


if __name__ == '__main__':
    unittest.main()

当我在 main.py 中使用 function GetGenerators时,它工作正常。 但是,当我通过右键单击文件“在 GetGenerators.py 中运行单元测试”来运行GetGenerators.py单元测试时,出现以下错误:

文件“C:\Program Files (x86)\JetBrains\PyCharm 2016.3.2\helpers\pycharm\nose_helper\util.py”,第 70 行,在 resolve_name obj = getattr(obj, part)

AttributeError: 'module' object 没有属性 'GetGenerators'

我想这与我的文件结构有关,但我没有看到问题。

我以前没有遇到过您的确切问题,但我想我遇到过类似的问题。 当我使用 PyCharm 时,我发现如果打开并使用我在 PyCharm 中的项目中创建的文件,则一切正常。 我可以导入它们,可以运行它们; 没问题。 我遇到的问题(与您的类似)是当我打开一个不是在 PyCharm 项目中创建的文件时。 我无法导入它们,有时甚至无法正确运行它们。 也许这只是我的愚蠢或者 PyCharm 的真正错误,但无论如何。 可能值得(如果您还没有的话),在 PyCharm 中创建一个项目并将文件内容复制并粘贴到您在 PyCharm 中创建的文件中。出于某种原因,这在过去对我有用。

所以我遇到了与 PyCharm 2022.2.2 类似的问题,这个解决方案对我没有帮助。 相反,有效的是检查我的代码以确保我没有在任何地方定义任何名为“module”的 object,另外我将一些文件如“face_landmarks.py”和“face_recognition.py”更改为“landmarks.py”避免在 python 中调用与 face_recognition package 类似的线路时混淆。

我还尝试将项目文件夹标记为命名空间 package。但是,由于我同时做了几件事,我不确定这是否有任何影响。 问题已解决,但即使在 6 年后,PyCharm 的文件结构问题仍然存在。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM