gpt4 book ai didi

Python导入冲突

转载 作者:太空宇宙 更新时间:2023-11-03 18:56:16 29 4
gpt4 key购买 nike

我最近构建了一个 Python 包并通过 Debian 打包器安装了它。它安装在我的系统上,以便我可以在其他项目中使用它。在我的新项目中,我有一个同名的包文件夹,即 opal。我扫描了网络,包括这个网站,所有内容都指向使用:

from __future__ import absolute_import

不幸的是,它无法解决问题,我怀疑我错过了一个细节。

我使用的是 Python 2.7.3,这是我的项目文件夹结构:

安装的包结构:

- opal
__init__.py
core.py

新项目结构:

- opal
- __init__.py
- net.py

在新项目中我不能这样做:

from opal.core import OpalClient

我总是收到一个错误,在opal下找不到core!!!

如果__future__是解决方案,有人可以给我举个例子吗?我尝试了多种方法,但总是出错。我发现对于如此简洁的语言来说这是一个尴尬的问题;)

干杯

最佳答案

如果没有额外的帮助,Python不会合并命名空间。您在一个位置有一个 opal 顶级包,在找到另一个顶级 opal 包之前先找到该包。找到的第一个包将 opal.net 作为包含的模块,但没有 opal.core 模块。

您需要使用setuptools namespace setup启用此行为;使用兼容 setuptoolssetup.py 安装您的软件包,并让它为您注册和管理命名空间。

如果您使用的是 Python 3.3 或更高版本,则可以使用新的 PEP 420 namespace support ,您可以将顶级目录(或多个目录)留空以创建一个可以合并的命名空间。另请参阅Namespace packages在 Python 3 导入系统文档中。

关于Python导入冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17191204/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com