是什么导致导入错误:“没有名为模块的模块”?

问题描述 投票:0回答:5

我正在开发我的第一个开源项目。

在为项目设置所有内容时,我一步步按照 README.md 进行操作。

现在,我遇到了一个问题。当我尝试运行测试和 src 脚本时,出现以下错误,

ImportError: No module named modules

现在,下面是文件结构。

../
   /modules
        __init__.py
        /src
            lyrics.py 
        /tests
            test_lyrics.py 

lyrics.py 导入语句

import modules

def test_lyrics():
    assert('lyrics' == modules.process_query('paradise lyrics')[0])

这就是错误“导入错误:找不到模块”的地方。

是的,自述文件中的所有要求均已满足。

如果您想查看该项目,请查看在 github 上

python python-import
5个回答
0
投票

可能是 PYTHONPATH 没有读取模块的目录。要检查这一点,请转到您的主目录并查找

.bashrc
或某种
.profile
文件。您可能需要使用
ls -a
才能查看这些隐藏文件。如果您没有看到列出的模块地址,请将其添加到文件中:

export PYTHONPATH="${PYTHONPATH}:/my/module/path"

确保地址指向具有最高级别

__init__.py
文件的目录,因为 python 使用它来将目录读取为 python 包。


0
投票

使用

python -m site
可以方便地查看 $PYTHONPATH 环境变量对
sys.path
的影响。

代码作者通常会假设当前目录 在你的路上:

$ export PYTHONPATH=.

如果您打算使用

.
当前目录, 然后仔细注意哪个正在使用 当脚本开始运行时。 您可能想查看此值:
os.getcwd()


0
投票

我参加聚会可能有点晚了,但我可以回答,也许会有帮助。

1)再次检查您的路径。 2)检查您是否使用 >./myProj 参数运行更多参数,而不是

myProj 争论更多的争论。希望能有一点帮助


0
投票

您可以尝试使用相对导入

from ..modules import process_query
def test_lyrics():
    assert('lyrics' == process_query('paradise lyrics')[0])

0
投票

在 Windows PowerShell 中必须将执行代码的文件夹设置为 PYTHONPATH

$Env:PYTHONPATH = ".\"
Echo $Env:PYTHONPATH  

或者如果添加到现有的 PYTHONPATH 值

$Env:PYTHONPATH += ";.\"
Echo $Env:PYTHONPATH  
© www.soinside.com 2019 - 2024. All rights reserved.