【发布时间】:2018-03-16 23:57:39
【问题描述】:
由于某些原因,我无法以这种格式import module 导入我自己的模块。
IDE:Pycharm,Python 版本:3
文件:
projectname/scr/test1.py
projectname/scr/test2.py
test1.py:
def print_value(x)
print x
test2.py:
import test1
value = 5
test1.print_value(value)
Pycharm 编辑器向我显示以下错误。
import test1 # Error: No module named test1
但是,当我运行代码 (python test2.py) 时,它运行良好。唯一的问题是我没有得到关于 test1 函数或变量的建议,例如当我键入 test. 时,没有弹出任何建议。 pycharm 的行为有点奇怪。
但是,如果我将这些文件在文件夹层次结构中按顺序向上移动,那么一切正常,当我键入 test1.something 时不会给出错误和正确的建议。
文件:
projectname/test1.py
projectname/test2.py
对此有何解释?为什么它在 src 文件夹中不起作用?
更新:
通过将 src 标记为 root sources 解决了这个问题,这是由 StackOverflow question 启发的。我仍然不明白为什么会发生这种情况以及为什么将此目录设置为根源可以解决此问题,但它现在可以工作。
【问题讨论】:
-
init.py 在 scr 中可用吗?
-
@Sosel 是的,它在 src 文件夹中可用。
-
运行 test3.py 时 sys.path 中有什么内容?另外,它是 init.py,而不是 init.py
-
对不起,__init__.py
-
@holak 我们只是把它写成 init.py 作为一个简短的符号。在src中是init.py.
标签: pycharm