0

运行一些 python 代码时出现以下错误

回溯(最后一次调用):文件“./dspl.py”,第 4 行,在导入库 ImportError:没有名为 base 的模块

disp.py 位于目录 PERSISTENCE_LENGTH 中,如下所示。disp.py 导入了 UTILS 目录中的一些 python 脚本(如下所示)。我将导入目录的路径(/home/vinay/oxDNA)添加到 PYTHONPATH 即,export 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' , )

4

1 回答 1

0

如果您的模块在一个目录中,而不是一个单独的命名文件,那么该目录需要有一个__init__.py文件。该文件的存在使目录成为模块,然后您可以从该模块加载,__init__.py可以为空,但您也可以在其中包含以下条目:

__all__ = ['component_name1', 'etc', 'etc']

如果你这样做了,那么列出的名称__all__是那些将在之后可用的名称from mondule_name import *

通常的做法是为目录指定一个有意义的名称,例如:`my_utils' 和目录中的组件,例如:'file_io.py',然后您可以通过以下方式访问 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都可以访问.s 中其他文件中的其他函数file_io.py,如果file_io.py有适当的导入,则可以访问my_utils.

同样重要的是要记住 python甚至依赖于 windows

于 2014-11-10T19:24:30.353 回答