Python &引用;ModuleNotFoundError“;在包内导入模块时

Python &引用;ModuleNotFoundError“;在包内导入模块时,python,python-3.x,python-packaging,Python,Python 3.x,Python Packaging,我正在尝试制作自己的软件包,以便可以使用其他文件夹中的文件。这个包包含几个不同的模块,然后是导入其中所有其他模块的主模块。例如: 文件夹 |- main.py |- other.py |- something.py |- __init__.py 在main.py中,我有以下导入: import other import something 当运行文件本身时,它工作正常;但是,我添加了uuu init_uuuuu.py文件,并尝试将其导入到其他文件夹中。该包已被识别,但main.py给了我以下

我正在尝试制作自己的软件包,以便可以使用其他文件夹中的文件。这个包包含几个不同的模块,然后是导入其中所有其他模块的主模块。例如:

文件夹

|- main.py
|- other.py
|- something.py
|- __init__.py
在main.py中,我有以下导入:

import other
import something
当运行文件本身时,它工作正常;但是,我添加了uuu init_uuuuu.py文件,并尝试将其导入到其他文件夹中。该包已被识别,但main.py给了我以下错误:

发生异常:ModuleNotFoundError没有名为的模块 “单变量”

文件“C:…\stats.py”,第8行,在 输入单变量

文件“F:…\testing.py”,第7行,在 从统计数据导入统计数据


为了澄清,实际的主文件名为stats.py。这是我第一次尝试制作一个包,这样我可能会错过一些东西。谢谢。

您需要将导入更改为相对导入

或者将其更改为根目录为项目文件夹的绝对导入

import x.y.other
import x.y.something

您可以阅读有关导入的信息

您需要将导入更改为相对导入

或者将其更改为根目录为项目文件夹的绝对导入

import x.y.other
import x.y.something

当您有一个不需要“.py”部分的模块要导入时,您可以阅读有关导入的内容

拥有一个包含init.py文件的文件夹(即使是空白文件)意味着包含该文件夹的项目可以从中导入

/myproject
| - /mymodule
| - |- stats.py
| - |- other.py
| - |- something.py
| - |- __init__.py
| - main.py
然后在main.py中,您需要做的就是从mymodule导入统计信息中导入mymodule


我总是讨厌FTFM某人,但这里有一个链接,指向如何从构建包。但是,当您需要打包您的模块以便其他人可以运行它时,这才真正开始发挥作用。Digital Ocean有一个非常好的教程。

当您有一个模块要导入时,您不需要“.py”部分

拥有一个包含init.py文件的文件夹(即使是空白文件)意味着包含该文件夹的项目可以从中导入

/myproject
| - /mymodule
| - |- stats.py
| - |- other.py
| - |- something.py
| - |- __init__.py
| - main.py
然后在main.py中,您需要做的就是从mymodule导入统计信息中导入mymodule


我总是讨厌FTFM某人,但这里有一个链接,指向如何从构建包。但是,当您需要打包您的模块以便其他人可以运行它时,这才真正开始发挥作用。Digital Ocean有一个非常好的教程。

谢谢您提供的信息,但我的问题不是导入包本身,而是在包内导入。我不得不将它们转换为相对导入,但现在我在“from stats import stats”(包名为stats,里面有一个stats文件)一行中出现语法错误。感谢您提供的信息,但我的问题不是导入包本身,而是在包内导入。我不得不将它们转换为相对导入,但是现在我在“fromstatimportstats”一行中得到了一个语法错误(包名为stats,里面有一个stats文件)。感谢您的回复。我对所有导入都这样做了,现在由于某种原因,“from stats import stats”行给了我一个语法错误。错误是什么?这是一个语法错误,但显然将所有导入更改为stats.moduleName而不是.moduleName正在修复它。似乎我的大多数错误都与在使用绝对路径时错误地使用相对路径有关,反之亦然。我现在应该可以修好了,谢谢!谢谢你的回复。我对所有导入都这样做了,现在由于某种原因,“from stats import stats”行给了我一个语法错误。错误是什么?这是一个语法错误,但显然将所有导入更改为stats.moduleName而不是.moduleName正在修复它。似乎我的大多数错误都与在使用绝对路径时错误地使用相对路径有关,反之亦然。我现在应该可以修好了,谢谢!请务必阅读。请务必阅读。