基本的 Python 导入问题 [英] Basic Python imports question

查看:39
本文介绍了基本的 Python 导入问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如果我有这样的 src 目录设置:

If I have a src directory setup like this:

main.py
pkg1:
    __init__.py
    util.py
pkg2:
    __init__.py
    test.py

你能告诉我从 main.pytest.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 您将使用两种方式之一,具体取决于您是否认为 pkg1pkg2 是始终部署的东西以相同的方式相互关联,或者它们是否总是半独立地部署在顶层.如果是第一个,你会这样做:

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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆