相关疑难解决方法(0)

python - 同一目录中模块的绝对导入

我有这个包裹:

mypackage/
    __init__.py
    a.py
    b.py
Run Code Online (Sandbox Code Playgroud)

我想从模块a导入到模块b的东西,在模块b中写入是否有意义

from mypackage.a import *
Run Code Online (Sandbox Code Playgroud)

或者我应该使用

from a import *
Run Code Online (Sandbox Code Playgroud)

这两个选项都可以工作,我只是想知道这是更好的(第二有道理的,因为它是在同一水平线上,但我考虑的第一个以避免冲突,例如,如果系统是从包含名为文件的文件夹运行a.py).

python

14
推荐指数
2
解决办法
6667
查看次数

在Python 3中从同一个包和包外部导入模块

好的,这个场景非常简单.我有这个文件结构:

.
??? interface.py
??? pkg
?   ??? __init__.py
?   ??? mod1.py
?   ??? mod2.py
Run Code Online (Sandbox Code Playgroud)

现在,这些是我的条件:

  • mod2需要导入mod1.
  • interface.py和mod2都需要作为主脚本独立运行.如果您愿意,可以将接口视为实际程序,将mod2视为软件包的内部测试程序.

因此,在Python 2,我只想做import mod1内部mod2.py两者python2 mod2.pypython2 interface.py预期会工作.

但是,如果我这样做,这是我不太了解的部分,使用Python 3.5.2 import mod1; 然后我可以做python3 mod2.py,但python3 interface.py抛出:ImportError: No module named 'mod1':(

所以,显然,python 3建议import pkg.mod1用来避免与内置模块的冲突.好的,如果我使用我可以做的python3 interface.py; 但后来我不能python3 mod2.py因为:ImportError: No module named 'pkg'

同样,如果我使用相对导入: from . import mod1然后python3 interface.py工作; 但mod2.py说SystemError: Parent module '' not loaded, …

import package python-3.x

14
推荐指数
1
解决办法
2861
查看次数

python 3.9.5 中的相对导入

我的文件夹结构如下

\n
./fff\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 __init__.py\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 fg\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 __init__.py\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 settings\n\xe2\x94\x82\xc2\xa0\xc2\xa0     \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 __init__.py\n\xe2\x94\x82\xc2\xa0\xc2\xa0     \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 settings.py\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 obng\n    \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 test.py\n
Run Code Online (Sandbox Code Playgroud)\n

我想将 fg/settings 中的 settings.py 作为模块导入到 test.py 中

\n

我已经添加了该行

\n

从 ..fg.settings 导入设置

\n

但是当我运行它时,它给了我以下错误

\n

回溯(最近一次调用最后):\n文件“/mnt/d/Repos/fff/obng/test.py”,第 1 行,位于 \nfrom ..fg.settings 导入设置\nImportError:尝试在没有已知父项的情况下进行相对导入包裹

\n

根据https://docs.python.org/3/reference/import.html#package-relative-imports支持这种相对导入方式

\n

我在这里做错了什么?

\n

python import relative-import

4
推荐指数
2
解决办法
1万
查看次数

标签 统计

import ×2

python ×2

package ×1

python-3.x ×1

relative-import ×1