- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我可能已经阅读了这里关于进口的所有帖子,但我仍然无法弄清楚进口发生了什么,我花了几个小时试图让一个非常简单的例子工作并且真的把我的头发拉出来了。
我正在使用 python 3.7 和 pycharm,但我正在从命令行运行我的代码,因为单元测试我正在使用 pytest。
我的项目结构是:
my_message_validator/
__init__.py
module_1/
__init.py__
foo.py
module_2/
__init.py__
bar.py
baz.py
module_3
context.py
test_all.py
from module_1 import foo
# For some reason pycharm doesnt complain when I use '.' but if I use module_2 it does
from . import bar, baz
ModuleNotFoundError: No module named
,当我设法让测试工作时,我仍然无法从命令行自行运行我的代码。
module_1
进入
module_2
这些实际上是包裹吗?我来自java并且发现导入更容易理解,我发现python导入非常困惑......
context.py
?
import os
import sys
# Is this needed as it doesnt seem to do anything?
sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), '..')))
from module_1.foo import Foo
from module_2 import bar, baz
test_all.py
我正在尝试从这样的上下文文件中导入:
from .context import bar,baz
from .context import Foo
# Calling in test like
Foo.load_file(file)
bar.method_one()
baz.method_two()
__init.py__
文件以及我应该在其中放入什么以使我的方法和类公开\暴露?我希望整个包是可重用的,因此希望能够将它视为 java 中的 jar 文件。
最佳答案
首先,不要使用相对导入(使用 .
),因为它会导致 multiple issues .始终写相对于项目根目录的导入。例如,你在 from module_1.foo import Foo
上做得很好.您也应该在 test_all.py
中进行操作和 context.py
.此外,使用相对导入后,__init__.py
在您的情况下,文件可以留空。
很可能,Python 解释器找不到您的模块,因为 PYTHONPATH
环境变量不包含项目的根目录。如果你运行 export PYTHONPATH="YOUR_PROJECT_ROOT_ABSOLUTE_PATH:$PYTHONPATH"
在您的脚本之前,它应该按预期运行。为确保始终设置此变量,您可以将导出语句添加到您的 shell 配置文件(例如 .bashrc
或 .bash_profile
)。
和作者聊了聊,原来还有第四期。这是一个名字冲突,就像这个 other question 中的一样。 .在他的项目目录中,module_1
实际上被称为 foo
喜欢它的 child foo.py
,这使解释器感到困惑。
关于Python 导入 - ModuleNotFoundError : No module named X,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58868333/
I have installed WeasyPrint==0.42.3 using pip3 install WeasyPrint==0.42.3, but when I try to impo
我正在从远程服务器设置Jupyter笔记本电脑环境。当我导入Notebook.auth时,它报告错误如下:。我的jupyter参数如下所示:。有人知道如何解决这个问题吗?我已经尝试了pip安装jupy
在运行命令时,我遇到了一个错误:Heroku run pythonManage.py Migrate。当我运行它时,它会出现错误:ModuleNotFoundError:没有名为‘Django’的模块
PC:Windows 11 WSL 2,ubuntu-22.04。我打算按照这些说明安装'cnntools'。安装后,我对其进行了测试。这件事就发生了。。我的电脑怎么了?我必须买一台新电脑吗?。我试过
我的文件夹结构是: |-fastapi |-app |-calc.py |-tests |-mytest.py 在 mytest.py 中,我尝试导入 calc.py,
假设我们有以下结构: outer_module.py| |subfolder| |__init__.py
我在 conda 中创建了一个新环境并安装了 yaml。 $ conda list | grep yaml yaml 0.1.7
我使用了来自 python-nmap 的 import nmap 模块,它在 Pycharm 中运行良好。 但是当我尝试在命令提示符下运行相同的程序时,出现错误: ModuleNotFoundErro
my_controller.py 如下: from models import Person david = Person('David') 我的项目结构是 app ├── controller │
我已经使用 tensorflow 构建了一个 python 脚本,现在我正在尝试将其转换为 .exe 文件,但遇到了问题。使用 pyinstaller 并从命令提示符运行程序后,我收到以下错误: Fi
我在网络驱动器上安装了 Python。我用了pushd命令进入同一网络驱动器上我的项目文件夹。我在那个文件夹中打开 python。我尝试导入该文件夹中的模块。一个 ModuleNotFoundErro
我的发行版是WinPython,我使用Spyder作为IDLE,我的python版本是3.6.5。 尽管我有很多模块(来自 WinPython 下载),例如 pip、pandas 和 numpy,它们
我在 macOS Mojave 版本 10.14.1 上使用 Python 3.7.1 这是我的目录结构: man/ Mans/
我的文件夹结构: ttsTacotron.py Tacotron-2 |.. |tacotron| |train.py |synthetizer.py
我正在使用 Python 3.6.0 和 pipenv。我在pycharm中有一个名为myapp的python项目,目录结构为 - myapp - src - __init__.py -
我利用自制程序安装 python3,现在无法运行使用关联的 pip3 二进制文件安装的模块。 from blackduck.HubRestApi import HubInstance username
我正在开发 Flask 应用程序并尝试运行我的测试文件,但无法执行此操作。我当前的应用程序结构是: Project ── app │ ├── __init__.py │ ├── forms.p
(在用重复的问题投票标记我之前,请注意,我在这个问题上找到的所有内容都与 virtualenv 有关,而不是 venv) 系统: Ubuntu 服务器 16.04 已安装 Python 3.6,原生
Visual Studio 2017 - 空 Python 项目我的代码如下所示(是的,只有两行): import pandas as pd import Quandl 我已将 Quandl (3.2
我需要 pickle 我已经实例化的 python 类,因此需要使用相对路径。我正在使用 Python 版本 3.6.6。以下是项目结构和代码的示例: modelling/ test.py
我是一名优秀的程序员,十分优秀!