[英]Python module not found even though module was created
这是我当前的目录结构,我试图从src/helpers/log.py
导入一个函数到src/data/download_dataset.py
。 我已经遵循了这个答案,但它仍然不起作用。
|-- AUTHORS.rst
|-- CONTRIBUTING.rst
|-- HISTORY.rst
|-- LICENSE
|-- MANIFEST.in
|-- Makefile
|-- README.rst
|-- data
| |-- external
| |-- interim
| |-- processed
| `-- raw
| `-- wine-quality.csv
|-- docs
| |-- Makefile
| |-- authors.rst
| |-- conf.py
| |-- contributing.rst
| |-- history.rst
| |-- index.rst
| |-- installation.rst
| |-- make.bat
| |-- readme.rst
| `-- usage.rst
|-- dvc_mlflow
| |-- __init__.py
| `-- dvc_mlflow.py
|-- logs
|-- models
|-- requirements_dev.txt
|-- setup.cfg
|-- setup.py
|-- src
| |-- data
| | |-- __init__.py
| | `-- download_dataset.py
| |-- features
| | `-- __init__.py
| |-- helpers
| | |-- __init__.py
| | `-- log.py
| `-- models
| `-- __init__.py
|-- tests
| |-- __init__.py
| `-- test_dvc_mlflow.py
`-- tox.ini
我在src/data/download_dataset.py
导入文件log_error
像这样:
from helpers.log import log_error
但是当我尝试使用python3 src/data/download_dataset.py
运行文件时,我收到错误ModuleNotFoundError: No module named 'helpers'
。 我有点困惑,因为我已经在每个目录中添加了__init__.py
文件以使它们成为模块,但问题仍然存在。
你可以试试sys.path.append
方法。 无论您想导入什么模块,找到这些模块的路径并将其传递给函数。
例子:
如果我当前的工作目录是/home/user_name/Desktop/Scripts/Main.py
并且我想导入一些位于/home/user_name/Documents/OtherScripts/
文件Factorial.py
,我可以执行以下操作
# Inside your Main.py file
import sys
sys.path.append("/home/user_name/Documents/OtherScripts/")
from Factorial import *
您正在从项目的根目录运行它,其中只有src
。 所以它要么需要from src.helpers.log import log_error
要么你需要从src
目录运行它。
通常,您希望使用与项目相同的名称命名src
目录,因此导入看起来合乎逻辑。
我发现了一种更简单的方法,我不必使用sys.path.append()
附加路径,只需要使用export PYTHONPATH="${PYTHONPATH}:/path/to/your/project/"
在命令行中设置 python 路径export PYTHONPATH="${PYTHONPATH}:/path/to/your/project/"
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.