Python 无法使导入在web.py项目中工作
我正在尝试使用Web.Py用Python创建一个基本的博客应用程序。我一开始没有一个direcotry结构,但很快我就需要一个。所以我创建了这个结构:Python 无法使导入在web.py项目中工作,python,module,web.py,importerror,Python,Module,Web.py,Importerror,我正在尝试使用Web.Py用Python创建一个基本的博客应用程序。我一开始没有一个direcotry结构,但很快我就需要一个。所以我创建了这个结构: Blog/ ├── Application/ │ ├── App.py │ └── __init__.py | ├── Engine/ │ ├── Connection/ │ │ ├── __init__.py │ │ └── MySQLConnection.py │ ├── Errors.py │ └── _
Blog/
├── Application/
│ ├── App.py
│ └── __init__.py
|
├── Engine/
│ ├── Connection/
│ │ ├── __init__.py
│ │ └── MySQLConnection.py
│ ├── Errors.py
│ └── __init__.py
├── __init__.py
├── Models/
│ ├── BlogPostModel.py
│ └── __init__.py
├── start.py
└── Views/
├── Home.py
└── __init__.py
start.py
导入Application.App
,其中包含Web.py内容和导入Blog.Models.BlogPostModel
,导入Blog.Engine.Connection.MySQLConnection
。
Application.App
还导入Engine.Errors
和视图.Home
。所有这些导入都发生在构造函数中,所有文件中的所有代码都在类中。当我运行python start.py
时,它包含以下三行代码:
from Application import App
app = App.AppInstance()
app.run()
将打印以下堆栈跟踪:
Blog $ python start.py
Traceback (most recent call last):
File "start.py", line 2, in <module>
Blog = App.AppInstance()
File "/home/goktug/code/Blog/Application/App.py", line 4, in __init__
from Blog.Views import Home
ImportError: No module named Blog.Views
Blog$python start.py
回溯(最近一次呼叫最后一次):
文件“start.py”,第2行,在
Blog=App.AppInstance()
文件“/home/goktug/code/Blog/Application/App.py”,第4行,在__
从Blog.Views导入主页
ImportError:没有名为Blog.Views的模块
但根据我从一些研究中了解到的情况,这应该运行,至少在App.py之后达到某种程度。谁能告诉我是在哪里犯的错误吗?(我可以根据请求提供更多的代码,但现在我就到此为止,因为这个模块越来越复杂了)。只有当模块的父目录(而不是
Blog
本身)位于python路径上时,才能导入模块Blog
如果您像这样从博客
目录运行程序,您只能像使用应用程序一样直接导入视图
。应用程序
:
from Views import Home
而不是
from Blog.Views import Home
在您的
应用程序/App.py
App.py
中包含以下语句
from Blog.Views import Home
因此,Blog
需要在Python搜索模块的目录列表中(sys.path
)。这可以通过多种方式进行安排
python start.py
启动应用程序,因此目录
包含的start.py
将自动添加到搜索路径。所以
你可以改变
from Blog.Views import Home
到
start.py
从
博客
目录。然后,当您调用python start.py
时
包含start.py
的目录也将是该目录
包含博客
。因此,当从执行时,Python会找到Blog
Blog.Views…
Blog
目录添加到PYTHONPATH环境中
变数谢谢,这是可行的,但是当我运行应用程序时,会抛出一个关键错误:at/u'Home',听起来像是代码中的错误,没有显示出来(与这个问题无关)。请打开一个新问题并发布更多详细信息(完整堆栈跟踪和错误消息以及相关代码)。谢谢,我现在正在写问题。
from Views import Home