基本的 Python 导入问题 [英] Basic Python imports question
问题描述
如果我有这样的 src 目录设置:
If I have a src directory setup like this:
main.py
pkg1:
__init__.py
util.py
pkg2:
__init__.py
test.py
你能告诉我从 main.py
和 test.py
导入 pkg1.util
的最佳方法吗?
Can you tell me the best way to import pkg1.util
from main.py
and from test.py
?
谢谢!(如果我需要在根目录中有另一个 __init__.py
文件,请告诉我?)
Thanks! (If I need to have another __init__.py
file in the root directory, let me know?)
推荐答案
既然您提到这是 Python 3,您就不必将以下内容添加到您的 .py
文件中.我仍然会这样做,因为如果一些困在 Python 2 上的可怜虫需要使用你的代码,它有助于向后可移植性:
Since you mention that this is Python 3, you do not have to add the following to your .py
files. I would still though because it helps backwards portability if some poor sod who's stuck on Python 2 needs to use your code:
from __future__ import absolute_import
鉴于您使用的是 Python 3,或者您使用的是 Python 2 并且包含了上述行,这里是您的答案:
Given that you are using Python 3, or that you're using Python 2 and have included the above line, here is your answer:
来自main.py
:
import pkg1.util as util
来自 test.py
您将使用两种方式之一,具体取决于您是否认为 pkg1
和 pkg2
是始终部署的东西以相同的方式相互关联,或者它们是否总是半独立地部署在顶层.如果是第一个,你会这样做:
from test.py
you would use one of two ways depending on whether you considered pkg1
and pkg2
to be things that would always deployed together in the same way in relation to each other, or whether they will instead always be each deployed semi-independently at the top level. If the first, you would do this:
from ..pkg1 import util
如果是第二个选项,则:
and if it's the second option, this:
import pkg1.util as util
当然,这意味着您总是从 main.py
所在的目录运行 Python,或者该目录在 PYTHONPATH
中或最终在sys.path
出于某种原因(例如作为主要的 Python 站点包目录).
This implies, of course, that you are always running Python from the directory in which main.py
is, or that that directory is in PYTHONPATH
or ends up in sys.path
for some reason (like being the main Python site-packages directory for example).
这篇关于基本的 Python 导入问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!