python - 当作为包安装时,在与运行脚本相同的目录中找不到模块
问题描述
我已经python setup.py develop
在包文件夹中安装了一个名为 pytable 的自定义包。包层次结构如下所示:
- pytable/
- __pycache__/
- 清单文件
- pytable/
- __init__.py
- __pycache__/
- pytable.py(主模块)
- tableError.py(带有自定义错误的类)
- testScript.py(导入 pytable.py)
- 自述文件.md
- 安装程序.py
tableError.py 模块被导入到 pytable.py 模块中,并且在没有使用 python 安装 pytable 的情况下运行 testScript.py 时工作正常,但是当我使用上述命令安装它并在import pytable from pytable
其他任何地方运行时,它会出错。
ModuleNotFoundError:没有名为“tableError”的模块
解决方案
问题是在安装包之后 Python 不知道去哪里寻找依赖的模块。添加...
import os
import sys
dir_path = os.path.dirname(os.path.realpath(__file__))
sys.path.append(dir_path)
...到 pytable.py 的顶部告诉 Python 在为 tableError.py 安装它的同一目录中查找。
推荐阅读
- c - SIGCHLD 和 fork + waitpid() 在一个库中
- javascript - 执行单击,直到可以实际单击元素
- laravel - 将请求数据传递给模型观察者类
- python - list .remove() 函数是如何工作的?
- node.js - 使用 ioRedis 连接到 ElastiCache 时出现随机 SSL 握手错误
- swift - Swift Core Data 保存到 /dev/null 所以它只在内存中
- kubernetes - 通过切换到新池来升级GKE集群:集群间服务通信会失败吗?
- java - java Flux中按对象属性分组
- azure - 如何在 Azure DevOps Pipeline 中设置和读取用户环境变量?
- php - PHP合并具有相同键/值的数组