[英]python : how to import packages?
這是我的文件夾:
/Workspace
somefiles.py
/foopackage
__init__.py
foo1.py
foo2.py
_ init _ .py包含
from foo1 import foo1
from foo2 import foo2
而且我想導入foopackage。 我已經試過了:
>>>import sys
>>>sys.path.append('/home/username/Workspace')
>>>import foopackage
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/username/Workspace/foopackage/__init__.py", line 1, in <module>
from foo1 import foo1
ImportError: No module named 'foo1'
我試過了sys.path.append('/ home / username / Workspace / foopackage'),問題已經解決了。
我問我是否必須將每個軟件包目錄都添加到sys.path列表中才能導入它們?
還是其他錯誤?
如果您使用的是Python 3,則需要使用顯式的相對導入而不是隱式的相對導入,后者在Python 2中可以正常工作。嘗試將foopackage
的__init__.py
文件更新為:
from .foo1 import foo1
from .foo2 import foo2
領先.
字符告訴Python foo1
和foo2
是同級模塊,而不是您絕對指的頂級模塊。 一種替代方法是對它們使用絕對引用:
from foopackage.foo1 import foo1
from foopackage.foo2 import foo2
但是我個人認為這有點過分。 如果將來在某個時候更改軟件包名稱(或成為其他軟件包的子軟件包),它也會中斷。
有關相對進口變更的更多詳細信息,請參見PEP 328 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.