![](/img/trans.png)
[英]site.py: AttributeError: 'module' object has no attribute 'ModuleType' upon running any python file in PyCharm
[英]Python + PyCharm File Structure issue: AttributeError: 'module' object has no attribute 'X'
我有以下文件结构:
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.