【问题标题】:Python Import gives packge not found even after __init__即使在 __init__ 之后,Python Import 也会给出未找到的包
【发布时间】:2019-07-19 04:45:08
【问题描述】:
Test
|   
|   __init__.py
|   
\---Mypackage
    |   qqq.py
    |   __init__.py
    |   
    +---effects
    |       abc.py
    |       
    \---Sound
        |   __init__.py
        |   
        \---formats
                xyz.py

当我尝试在 xyz.py “from Mypackage.effects import abc”中导入时

我明白了,

C:\Test>python C:\Test\Mypackage\Sound\formats\xyz.py
Traceback (most recent call last):
  File "C:\Test\Mypackage\Sound\formats\xyz.py", line 1, in <module>
    from Mypackage.effects import abc
ModuleNotFoundError: No module named 'Mypackage'

【问题讨论】:

  • 您已使用python-3.xpython-2.7 标记您的问题,但您可能只使用其中一个版本。你能把不相关的标签去掉吗?或者见鬼,由于这个问题主要与版本无关,你可以将它们都删除。关于这个问题,你如何运行xyz.py?您是从formats 文件夹中调用python xyz.py 吗?您是否在 Test 文件夹中尝试过 python -m Mypackage.Sound.formats.xyz
  • 我试图将 abc 导入 xyz 文件。它没有成功。但是当我给 C:\Test>python -m Mypackage.Sound.formats.xyz 它没有抱怨 C:\Test>python -m Mypackage.effects.abc 也没有问题。但是当导入是 xyz.py 文件的一部分时,它就不起作用了。

标签: python python-3.x python-2.7 python-import importerror


【解决方案1】:

您需要在 xyz.py 中添加以下行

import sys
sys.path.append('path_to_your_Test_folder')
from Mypackage.effects import abc

然后按照您在问题中显示的方式运行此脚本。

注意:以上方案是使用python3.5和ubuntu 16.04测试的

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-24
    • 2020-02-03
    • 1970-01-01
    相关资源
    最近更新 更多