Python:相对导入

Python:相对导入,python,Python,我尝试使用具有以下结构的包: 文件prova.py仅包含以下行: import bipartite_class 而bipartite_class.py具有以下初始行: from .nes import * from .mod import * from .graphs import * from .contrib import * from .null import * from .tests import * from getref import * import pickle imp

我尝试使用具有以下结构的包:

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

import bipartite_class
而bipartite_class.py具有以下初始行:

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时,出现以下错误:

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
回溯(最近一次呼叫最后一次):
文件“prova.py”,第1行,在
导入二部类
文件“/Desktop/CD_BEST/Bipartito/bipy master/bipy/bipartite_class.py”,第1行,在
从.nes导入*
ValueError:尝试在非包中进行相对导入
如果我尝试删除bipartite_class.py中的点,我会得到:

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
回溯(最近一次呼叫最后一次):
文件“prova.py”,第1行,在
导入二部类
文件“/Desktop/CD_BEST/Bipartito/bipy master/bipy/bipartite_class.py”,第1行,在
从nes进口*
文件“/Desktop/CD_-BEST/Bipartito/bipy-master/bipy/nes/_-init_.py”,第5行,在
从nodf导入*
文件“/Desktop/CD_BEST/Bipartito/bipy master/bipy/nes/nodf.py”,第3行,在
从..mainfuncs导入*
ValueError:尝试在顶级包之外进行相对导入

我该怎么办?

看起来您正在使用此选项:
prova.py
是您添加的内容(如果您在以后的问题中的问题中包含此类信息,那就太好了!)

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

from bipy import bipartite_class
然后您应该能够运行
prova.py


更好的办法是实际安装bipy。由于项目包含一个
setup.py
,因此您可以运行:

python setup.py install

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

这是否回答了您的问题?去掉这些点!我认为我的情况不同,因为我试图编译一个不在文件夹中的文件。添加了删除点时出现的错误