Python导入错误及正确导入guidan

2024-09-27 19:29:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我的结构是这样的

/App
__init__.py
    -/dirA
        -__init__.py
        -a.py
    -/dirB
        -__init__.py
        -b.py
/samy_app
    __init__.py
    settings.py
    urls.py
manage.py 

在b.py内部,我想导入a.py

所以在b.py里面我有

from App.dirA import a

但是,我收到的错误是“ImportError:没有名为'App'的模块”

我也试过用。。但这也不行。你知道吗

我还想知道,如果我不应该把文件在不同的目录像那样。这真的是为了组织。或者我应该将它们移出应用程序,并将文件夹放在与应用程序相同的目录中管理.py?你知道吗

我真的很想得到你的帮助。我试了一整天。你知道吗

你知道吗系统路径输出

['', '/root/django-dev', '/usr/lib/python35.zip', '/usr/lib/python3.5', '/usr/lib/python3.5/plat-x86_64-linux-gnu', '/usr/lib/python3.5/lib-dynload', '/usr/lib/python3.5/site-packages', '/usr/local/lib/python3.5/dist-packages', '/usr/lib/python3/dist-packages']

谢谢大家的帮助。有没有什么我在设置服务器时没有做的事情?我看了文件,似乎这个导入应该工作没有附加任何路径。。。你知道吗


Tags: 文件py路径目录app应用程序initlib
3条回答

App目录的父目录应该在PYTHONPATH(或sys.path)中。如果App目录位于/home/dorian/mega_project,那么PYTHONPATH应该包含/home/dorian/mega_project。你知道吗

我相信当我这样做的时候,我通常不得不这样做:

from dirA.a import THING_IM_IMPORTING_FROM_A

我的应用程序的根目录是App目录。你知道吗

你在说manage.py,你是在用django吗?你知道吗

无论如何,如果从dirB运行脚本,您将得到一个错误,但是如果您有这样的结构:

main.py   
App/
    __init__.py
    dirA/
        __init__.py
        a.py
    dirB
        __init__.py
        b.py

而且在主.py你有 from App.dirB import b

b.py中你有

from App.dirA import afrom ..dirA import a

你应该没事的。你知道吗

在任何其他情况下,您可能应该将../(或它的绝对路径)添加到PYTHONPATH

import sys
sys.path.append("../")

但我觉得这不是个好主意。你知道吗

相关问题 更多 >

    热门问题