Python 模块导入,但不';我没有任何属性

Python 模块导入,但不';我没有任何属性,python,Python,我正在尝试导入一个Python模块(fiasco)。我从GitHub克隆了它,一切看起来都很好。导入它可以工作,但是当我尝试键入时,例如iron=fiasco.Element('iron',[1e4,1e6,1e8]*u.K),我得到错误模块'fiasco'没有属性'Element'。我正在使用Spyder的iPython控制台。如果我从终端启动iPython,这也会失败,但是如果我从终端启动python3,这会起作用 我在两台不同的计算机上完成了这项工作——在一台计算机上,它一开始可以工作,但

我正在尝试导入一个Python模块(fiasco)。我从GitHub克隆了它,一切看起来都很好。导入它可以工作,但是当我尝试键入时,例如
iron=fiasco.Element('iron',[1e4,1e6,1e8]*u.K)
,我得到错误
模块'fiasco'没有属性'Element'
。我正在使用Spyder的iPython控制台。如果我从终端启动iPython,这也会失败,但是如果我从终端启动python3,这会起作用

我在两台不同的计算机上完成了这项工作——在一台计算机上,它一开始可以工作,但在我重新启动内核后,开始给我相同的错误。另一方面,它根本不起作用

如果有用的话:导入后,我尝试键入
fiasco
。当我在它最初工作的计算机上执行此操作时,输出是
。现在,在电脑上,它从来没有工作过,它只是说
。也许这和路径有关


添加:
sys.path
指向
/Users/shirman
,以及
/Users/shirman/anaconda3
中的几个路径。fiasco文件夹位于
/Users/shirman
中。由于
sys.path
设置,您无意中创建了一个名称空间包。命名空间包是在Python搜索路径中没有
\uuuu init\uuuuuuuuuuuuupy
的目录,允许从不同路径加载子模块或-包(例如
path1/foo/a.py
path2/foo/b.py
可以作为
foo.a
foo.b
导入)

问题是,
importfiasco
首先找到
/Users/shirman/fiasco
,并将其作为名称空间包导入。如果设置sys.path,使
/Users/shirman/fiasco
位于
/Users/shirman
之前,则导入程序首先查找实际的包
/Users/shirman/fiasco/fiasco


命名空间包是Python 3.3的一项功能,因此要么另一台机器有不同的
sys.path
设置,要么是非常旧的Python 3安装,要么是您使用的是Python 2。

使用第三方模块的典型方式是使用包管理器(如pip或conda)安装,而不是从GitHub克隆源代码。是的,您的
sys.path
将指向另一个目录,可能指向
/Users/shirman
。您是否可能创建了另一个名为
fiasco.py
的源文件?那里已经有一个
fiasco.py
文件,不要认为我创建了任何其他文件。非常感谢!我在
$PYTHONPATH
中添加了
/Users/shirman/fiasco
,看起来现在可以正常工作了。