Python:相对导入
我尝试使用具有以下结构的包: 文件prova.py仅包含以下行: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
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
,这样您就可以将使用它的程序放在它们自己的目录中。这是否回答了您的问题?去掉这些点!我认为我的情况不同,因为我试图编译一个不在文件夹中的文件。添加了删除点时出现的错误