我在处理的项目中遇到了持续的导入错误,非常感谢任何帮助。该项目托管在 GitHub 上:amir-without-models
当我在本地克隆并运行代码时,就会出现问题;我面临着许多与导入相关的错误。尽管尝试了各种解决方案,但我还没有找到解决方案。有趣的是,相同的代码在我们的 Kubernetes Pod 上运行顺利,这表明代码本身是正确的。
问题的一个典型示例是 import 语句:
from client.utils import query_fields
该行无法在本地编译,但在我们的 Kubernetes 环境中可以完美运行。
将导入路径更改为:
from client.client.utils import query_fields
解决了本地问题并允许单元测试通过,但此更改会破坏 Kubernetes 上的功能。
总之,我需要找到一种方法使导入工作而不改变它们,保持与本地环境和 Kubernetes 设置的兼容性。
我目前正在使用 Windows 操作系统并使用 PyCharm 作为我的 IDE。
有人遇到过类似的问题或对如何解决这个问题有见解吗?任何帮助将不胜感激!
我看不到你分享的 github 项目“amir-without-models”
所以,也许我不是100%确定
由于导入错误,您无法在本地运行,但可以在 K8s Pod 上运行? 在这种情况下也许有
1.Dockerfile 上的 ENV PYTHONPATH 如下
Dockerfile 示例
FROM [your image name]
...
...
ENV PYTHONPATH "${PYTHONPATH}:[project path]/client:[project path]/client/client"
2.或者在yamls
apiVersion: apps/v1
kind: Deployment
metadata:
name: your-deployment-name
...
spec:
containers:
- name: your-container-name
image: your-image-name
env:
- name: PYTHONPATH
value: "[project path]/client:[project path]/client/client"
3.在本地做同样的事情吗?
你说你的操作系统是 Window 并使用 PyCharm
在 cmd 上使用“set”(powershell...等)
set PYTHONPATH=C:\Users\..\your_project\client;C:\Users\..\your_project\client\client
然后重新启动你的IDE并尝试一下