首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python:相对导入

Python:相对导入
EN

Stack Overflow用户
提问于 2021-05-14 09:41:17
回答 1查看 60关注 0票数 0

我试图使用一个具有以下结构的包:

文件prova.py仅包含以下行:

代码语言:javascript
复制
import bipartite_class

而bipartite_class.py有以下初始行:

代码语言:javascript
复制
from .nes import *
from .mod import *
from .graphs import *
from .contrib import *
from .null import *
from .tests import *

from getref import *

import pickle
import tempfile
import os
import numpy as np
import networkx as nx

import os.path

当我试图编译prova.py时,我得到以下错误:

代码语言:javascript
复制
Traceback (most recent call last):
  File "prova.py", line 1, in <module>
    import bipartite_class
  File "/Desktop/CD_BEST/Bipartito/bipy-master/bipy/bipartite_class.py", line 1, in <module>
    from .nes import *
ValueError: Attempted relative import in non-package

如果我试图删除bipartite_class.py中的点,就会得到:

代码语言:javascript
复制
Traceback (most recent call last):
  File "prova.py", line 1, in <module>
    import bipartite_class
  File "/Desktop/CD_BEST/Bipartito/bipy-master/bipy/bipartite_class.py", line 1, in <module>
    from nes import *
  File "/Desktop/CD_BEST/Bipartito/bipy-master/bipy/nes/_init_.py", line 5, in <module>
    from nodf import *
  File "/Desktop/CD_BEST/Bipartito/bipy-master/bipy/nes/nodf.py", line 3, in <module>
    from ..mainfuncs import *
ValueError: Attempted relative import beyond toplevel package

我该怎么办?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-05-14 10:08:59

看起来您正在使用以下内容:https://github.com/tpoisot/bipyprova.py是您的新增内容(如果您在将来的问题中包含这类信息,那就太好了!)

问题是bipartite_class不是一个独立的模块,而是包bipy的一部分。这意味着您需要从包外部导入它。您需要将prova.py一个目录向上移动到bipy-master,并将其内容更改为:

代码语言:javascript
复制
from bipy import bipartite_class

然后您应该能够运行prova.py

更好的办法是实际安装bipy。因为该项目包括一个setup.py,所以可以运行:

代码语言:javascript
复制
python setup.py install

然后您可以从任何地方导入bipy,这样您就可以将使用它的程序放在自己的目录中。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67532203

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档