相关疑难解决方法(0)

2074
推荐指数
12
解决办法
100万
查看次数

VSCode ModuleNotFoundError:没有名为 X 的模块

我正在尝试构建一个新包,但是,当我尝试从 VSCode 内部或终端运行任何文件时,我遇到了以下错误:

ModuleNotFoundError: No module name 'x'
Run Code Online (Sandbox Code Playgroud)

我当前的文件夹结构如下:

package
|---module
|------__init__.py
|------calculations.py
|------miscfuncs.py
|---tests
|------__init__.py
|------test_calcs.py
|---setup.py
|---requirements.txt
Run Code Online (Sandbox Code Playgroud)

但是,当我通过 VSCode 并在 test_calcs.py 中使用import module.calculations as calc或运行测试(PyTest)时from module.calculations import Class,测试按预期工作 - 这让我感到困惑。

我知道这是一个常见问题,但我无法找出适用于此的解决方案。

我尝试使用下面的代码检查工作目录是否在系统路径中。返回的目录列表中的第一项是我正在使用的目录。

import sys
print(sys.path)
Run Code Online (Sandbox Code Playgroud)

我还在文件中使用了以下内容但无济于事:

import module.calculations 
import .module.calculations
from . import miscfuncs
Run Code Online (Sandbox Code Playgroud)

尝试时import .module.calculations,我得到以下信息:

ModuleNotFoundError: No module named '__main__.module'; '__main__' is not a package
Run Code Online (Sandbox Code Playgroud)

当尝试from . import miscfuncs在calculations.py中时,我收到以下错误:

ImportError: cannot import name 'miscfuncs'
Run Code Online (Sandbox Code Playgroud)

当处理模块文件夹中的文件时,我可以使用相对导入:import calculations并且它工作得很好。这对于模块内的文件来说很好,但当我在 test_calcs.py …

python visual-studio-code

29
推荐指数
3
解决办法
8万
查看次数

模块导入 Python 3.6 上的 ModuleNotFoundError 和 ImportError

我已经浏览并发现了很多问题和很多答案,但似乎没有任何问题。

我设置了两个文件config.pytest.py名为test一个文件夹下。

配置包括代码:

class Config:
    def __init__(self, name):
        self.name = name
Run Code Online (Sandbox Code Playgroud)

而测试有:

try:
    # Trying to find module in the parent package
    from . import config
    print(config.debug)
    del config
except ImportError:
    print('Relative import failed')

try:
    # Trying to find module on sys.path
    import config
    print(config.debug)
except ModuleNotFoundError:
    print('Absolute import failed')
Run Code Online (Sandbox Code Playgroud)

这已根据此堆栈答案的答案供应商汇总在一起。

不幸的是,我同时出现了两个错误,当我尝试直接调用它时,from config import Config我得到 ModuleNotFoundError

我真的对这个迷失了方向,不知道从哪里开始。

使用 Python 3.6,atom.io 作为我的 IDE。

python python-module python-3.x

9
推荐指数
1
解决办法
3185
查看次数

如何从python3中的子文件夹导入模块(空__init__.py)

我想从子文件夹中的文件调用函数.我宁愿做静态的.我使用空__init__.py文件,因为我已经读过,在简单的情况下,它们可能是空的(我的可能不是更简单),或者从3.5开始,我根本不需要它们.但我愿意填补它们.

我有以下文件结构:

test
??? callfoo.py   (main)
??? __init__.py  (empty)
??? folder
    ??? submodule.py
    ??? __init__.py (empty)
Run Code Online (Sandbox Code Playgroud)

callfoo.py:

#import statement wanted

def main():
    foo()

if __name__ == "__main__":
        main()
Run Code Online (Sandbox Code Playgroud)

submodule.py

def foo():
    print('foo')
Run Code Online (Sandbox Code Playgroud)

对于我尝试过的import语句:

import test.folder.submodule
from test.folder import submodule
from test.folder.submodule import foo

每一个导致ModuleNotFoundError: No module named 'test.folder' 我在这里有点困惑,因为它们是直接从文档中获取的

import .folder.submodule- > invalid syntax importlib.import_module('test.folder.submodule') ModuleNotFoundError:没有名为'test.folder'的模块

这有效:

import importlib.util
spec = importlib.util.spec_from_file_location("submodule", "/home/.../test/folder/submodule.py")
foo = importlib.util.module_from_spec(spec)
spec.loader.exec_module(foo)
Run Code Online (Sandbox Code Playgroud)

但我真的不想动态地这样做,特别是对于几个文件.

这个ModuleNotFoundError:没有名为x的模块处理我的错误消息,但是根据我的判断,它没有处理子文件夹(对于我来说,submodule.py它在同一级别上工作正常callfoo.py) …

python-import python-3.x

8
推荐指数
1
解决办法
7232
查看次数

ModuleNotFoundError:没有名为“tkSimpleDialog”的模块 - Python Shell

我正在尝试运行我到这里的这段代码:

from tkinter import *

import tkSimpleDialog

import tkMessageBox

 root = Tk()
 w = Label(root, text= "My Program")
 w.pack()

 tkMessageBox.showinfo("Welcome", "Add welcome message here")
Run Code Online (Sandbox Code Playgroud)

但是 发生了这个错误:

我已经在这里查看ModuleNotFoundError: No module named x,但我无法理解答案。我对这些东西还是陌生的。

python

4
推荐指数
1
解决办法
4364
查看次数