Python3导入错误
我一直混淆了Python3和Python2在导入方面的区别 如果我有这样一个目录Python3导入错误,python,python-3.x,importerror,Python,Python 3.x,Importerror,我一直混淆了Python3和Python2在导入方面的区别 如果我有这样一个目录 module_test/ -> a/hello.py lib/mad.py 我想从lib/mad.py导入hello模块 import a.hello 所以我写了这样的代码 lib/mad.py import a.hello 我把pythonlib/mad.py称为python,但它发生了 我不知道为什么会这样 你知道吗?我想解决这个问题 示例存储库是##提前谢谢 您的问题是,通过从module
module_test/ ->
a/hello.py
lib/mad.py
我想从lib/mad.py导入hello模块
import a.hello
所以我写了这样的代码
lib/mad.py
import a.hello
我把pythonlib/mad.py称为python,但它发生了
我不知道为什么会这样
你知道吗?我想解决这个问题
示例存储库是##提前谢谢 您的问题是,通过从
module\u test
目录运行mad.py
,您猜测Python将使用当前目录作为查找模块b
的基础。要证明它不起作用,请执行以下操作:
> python lib/mad.py
mad.py
脚本,并将以下内容添加到脚本中:
import sys
print(sys.path)
exit()
这将只打印Python用于查找您尝试导入然后退出的模块的搜索路径/module\u test
,然后运行以下操作:
> python lib/mad.py
现在您应该看到转储到终端的路径。请注意,列表中的第一个条目是文件夹“module_test/lib”,而不是您认为的“module_test”> export PYTHONPATH=$PYTHONPATH:/path/to/module_test
现在,如果您尝试运行脚本,它应该按预期导入a.hello
PS:您应该阅读官方Python教程,特别是第6章,其中解释了模块和包的概念:
这会让你基本了解情况并帮助你解决问题。看起来
a
目录可能不在你的Pythonpath上。发布您的确切stacktrace,否则您将无法获得更多有用的帮助。