Python 路径和导入

问题描述 投票:0回答:1

我在处理的项目中遇到了持续的导入错误,非常感谢任何帮助。该项目托管在 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。

有人遇到过类似的问题或对如何解决这个问题有见解吗?任何帮助将不胜感激!

python windows kubernetes path python-import
1个回答
0
投票

我看不到你分享的 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并尝试一下

© www.soinside.com 2019 - 2024. All rights reserved.