【发布时间】:2017-05-03 13:27:19
【问题描述】:
这里的第一个问题,在问这个问题之前已经做了很长时间的研究,但似乎无法弄清楚。
我正在尝试通过标准导入语句导入同一目录中的文件:
import foo
文件如下所示:
project_folder
---->foo
---->etc.
即使工作目录看起来井井有条,它也不起作用。我得到的错误是 foo 正在尝试导入一个自制模块,该模块再次导入该模块内的另一个文件。所以会发生以下情况:
file = wip_file.py
>import foo
------------
file = foo.py
>from spam import eggs, bacon
------------
file = eggs.py
>import bacon
其中 spam 是站点包中的自创模块。现在我收到的错误是在 egg.py 中导入它时没有名为 bacon 的模块。有趣的是,在 foo.py 中成功导入了 bacon。
然后我尝试通过上面的文件夹名导入:
from project_folder import foo
但是,通过这种方式,它在文件 foo 中导入了类,该文件也被称为 foo。相同的脚本在另一台 PC 上运行良好。所以我想我在 PyCharm 中的路径有些混乱。有没有人对如何解决这个问题、重置标准或我可以尝试的任何其他事情有任何建议?
提前非常感谢!
【问题讨论】:
-
您的模块是否有一个空的 _init_.py 文件?这就是 python 如何知道它是您要导入的模块的方式。另外,你用的是什么版本的python?
-
模块
foo没有命名为foo.py?这会导致问题。 -
在自建模块中确实有一个init文件。我正在使用 Python 3.6,另一个 PC 3.4。但是到目前为止,我们对此没有任何问题。. foo.py 文件不是模块。
-
是的 foo 是一个 foo.py。我只想从那个文件中导入一个方法。
-
“它似乎不起作用”:它在什么方面不起作用?你怎么知道它不起作用?明确并编辑问题。