我有一个结构如下的项目:
.
└── project
├── assignment01
| ├── __init__.py
| └── old_file.py
|
├── assignment02
| ├── __init__.py
| └── new_file.py
└── __init__.py
我需要使用我在导入的文件new_file.py
中的第一个赋值中实现的函数,如下所示:
from assignment01 import old_file as assgn1
目前,我正在PyCharm中编程,IDE没有显示任何警告或问题。它甚至自动完成上面的代码。尽管如此,当我想运行<code>new_file时。py在命令行中抛出以下错误:
ModuleNotFoundError: No module named 'assignment01'
添加另一个< code>__init__。py,位于< code >项目目录中。
此外,使用代码,请尝试从项目
目录运行new_file.py
。
示例:
python assignment02/new_file.py
您要么需要使这两个作业都成为包的一部分,方法是在项目中
放置一个__init__.py
,然后从 ..作业01 导入old_file
。你需要从上面的项目
(python -m project.assignment1.newfile.main
)调用你的代码,所以python会拿起外部包并能够解析..
。或者您可以省略 ..
并简单地从项目中
调用,如另一个答案中所述。无论如何,这个想法是在python可以找到并导入的地方获取assignment0
。
或者您需要将项目
添加到sys.path
:
import sys
from pathlib import Path
sys.path.insert(0, str(Path(__file__).parent.parent))
您当前的导入失败,因为 python 正在 assignment02 中查找 assignment01
,当然,失败了。
问题内容: 我在理解项目中python文件的使用场景或设计目标时遇到了困难。 假设我有“模型”目录(称为包),其中包含以下文件 我发现了两种使用方法: 我有需要使用一个共同的定义,,。我可以用作所有* model.py类的基础/通用定义吗?这意味着我必须导入。 或者,应当具有自己导入的solrmodel.py,mongomodel.py,samodel.py的定义,并且它允许像这样的类或函数的轻松
init.py
init.py 指定导入该包时,仅导入 Client 类,代码如下: __all__ = ['Client'] from heatclient.v1.client import Client
问题内容: 我知道栈上有很多类似的问题。但是常见的答案似乎并不适合我。 我有这样的文件结构 我发现如果我在test.py中包含代码 要么 我将能够引用目录中的模块。但这没有用。 所以我尝试添加到路径,它正确添加了它: 但是即使是现在,当我尝试上述导入语句时,我仍然收到错误消息 要么 有什么明显的我想念的吗? 有没有办法检查我是否正确配置了文件,或查看我的程序包层次结构? 问题答案: 您需要更新,这
问题内容: 我正在学习Python,但无法弄清楚导入的工作方式。 我从Python教程中了解到该文件初始化了一个程序包,并且可以在此处导入子程序包。 不过,我做错了。您能为我(以及将来的Python学习者)解释我做错了什么吗? 这是我正在尝试做的一个简化示例。 这是我的文件结构: 内容: 是空的。 包含: 最后,包含: 这就是我尝试使用OSX终端和Python 3运行hello_world.py的
我试图遵循PEP 328,目录结构如下: 在中,我有以下导入语句 我有什么遗漏吗?