簡體   English   中英

Python:相對進口

[英]Python: Relative imports

我正在嘗試使用具有以下結構的 package: 在此處輸入圖像描述

文件 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

如果我嘗試刪除 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

我應該怎么辦?

看起來你正在使用這個: https://github.com/tpoisot/bipy並且prova.py是你的補充(如果你在以后的問題中包含這種信息會很好!)

問題是bipartite_class不是獨立模塊,而是 package bipy的一部分。 這意味着您需要從 package 外部導入它。 您需要將prova.py上移一個目錄到bipy-master ,並將其內容更改為:

from bipy import bipartite_class

然后你應該能夠運行prova.py


更好的是實際安裝bipy。 因為該項目包含一個setup.py ,您可以運行:

python setup.py install

然后,您可以從任何地方導入bipy ,這樣您就可以將使用它的程序放在自己的目錄中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM