[英]Python ModuleNotFoundError: No module named 'azure.cognitiveservices'
[英]ModuleNotFoundError: No module named 'x" using azure functions + Python + private repository
我在使用 python 的 azure 函数上遇到 ModuleNotFoundError 错误。 我想从我的 HttpTrigger init.py 中的私有存储库中调用一个函数。 运行后,私有存储库的实际文件存储在 src 文件夹中:
pip install -r --target=".python_packages/lib/site-packages" requirements.txt
.python_packages 中的 private_repostiroy.egg.link 包含以下值:
/home/runner/work/etl_azure_function/etl_azure_function/src/private-repository
我尝试了多种从私有 git 存储库导入的解决方案,例如:
from ..src import private_repository.package
from ..src.private_repository.package import funtion
import private_repository.function
我总是收到一个未找到模块的错误,尽管它已通过 Github 操作成功部署。 如何将私有存储库中的功能导入 httptrigger
<project_root>/
| - requirements.txt
| - .venv/
| - .vscode/
| - .python_packages
| - HttpTrigger/
| | - __init__.py
| | - function.json
| | - example.py
| - src
| | - private_git_repo
| | | - package
| | | | __init__.py
| | | | function.py
我通过删除 requirements.txt 中的可编辑选项 (-e) 解决了这个问题:
您必须将项目的路径附加到PYTHONPATH
并确保使用绝对导入。
对于 UNIX(Linux、OSX、...)
export PYTHONPATH="${PYTHONPATH}:/path/to/your/project/"
对于 Windows
set PYTHONPATH=%PYTHONPATH%;C:\path\to\your\project\
绝对进口
假设我们有以下项目结构,
└── myproject
├── mypackage
│ ├── a.py
└── anotherpackage
├── b.py
├── c.py
└── mysubpackage
└── d.py
只需确保从项目的根目录开始引用每个导入。 例如,
# in module a.py
import anotherpackage.mysubpackage.d
# in module b
import anotherpackage.c
import mypackage.a
有关更多信息,请参阅文章How to fix ModuleNotFoundError 和 ImportError 。
请参阅此SO线程。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.