运行一些python代码时出现以下错误
追踪(最近一次通话): 文件“./dspl.py”,第4行,in 进口基地 ImportError:没有名为base
的模块disp.py位于目录PERSISTENCE_LENGTH中,如下所示。 disp.py导入目录UTILS中的一些python脚本(如下所示)。我将导入目录(/ home / vinay / oxDNA)的路径添加到PYTHONPATH,即导出PYTHONPATH = $ {PYTHONPATH}:/ home / vinay / oxDNA /)。 UTILS目录中有一个正确的_init__.py文件。
disp.py位于以下目录中:/ home / vinay / oxDNA / EXAMPLES / PERSISTENCE_LENGTH
disp.py正在导入目录中的其他模块:/ home / vinay / oxDNA / UTILS
当我打印sys.path时,我可以看到PYTHONPATH没问题。如下所示 ['','/ home / vinay','/ home / vinay / oxDNA / UTILS','/ usr / lib / python2.7','/ usr / lib / python2.7 / plat-linux2',)< / p>
答案 0 :(得分:-1)
如果您的模块位于目录中,而不是单个命名文件,则该目录必须具有__init__.py
文件。此文件的存在使该目录成为一个模块,然后您可以从该模块加载,__init__.py
可以为空,但您也可以在其中输入:
__all__ = ['component_name1', 'etc', 'etc']
如果您这样做,__all__
中列出的名称将是from mondule_name import *
后可用的名称
通常的做法是为目录命名,例如:`my_utils&#39;以及目录中的组件,例如:&#39; file_io.py&#39;然后,您可以访问file_io中的项目:
import my_utils
my_utils.file_io.functionA()
或
from my_utils import file_io
file_io.functionA()
或
from my_utils.file_io import functionA()
functionA()
请注意,在以上所有示例中,functionA
可以访问file_io.py
中的其他功能,如果file_io.py
具有相应的导入,则访问my_utils
中其他文件中的其他功能}。
同样重要的是要记住python 依赖于案例 即使在Windows 。