python/django没有名为yelp的模块

python/django没有名为yelp的模块,python,django,api,Python,Django,Api,我下载了YelpGithubforPython,python文件夹中有三个文件。我将这三个文件夹放在名为yelp的文件夹中,该文件夹位于mysite中。(我正在关注django创建的第一个应用程序文档)。这个mysite文件夹也有polls文件夹 当我将yelp添加到settings.py已安装的应用程序中时,如果我尝试执行python manage.py runserver,为什么我仍然没有得到名为yelp的模块 请帮忙,我仍在努力学习python是如何工作的,当您引入一个新的.py文件时该怎

我下载了YelpGithubforPython,python文件夹中有三个文件。我将这三个文件夹放在名为
yelp
的文件夹中,该文件夹位于
mysite
中。(我正在关注django创建的第一个应用程序文档)。这个
mysite
文件夹也有
polls
文件夹

当我将yelp添加到
settings.py
已安装的应用程序中时,如果我尝试执行
python manage.py runserver
,为什么我仍然没有得到名为yelp的模块

请帮忙,我仍在努力学习python是如何工作的,当您引入一个新的.py文件时该怎么做


谢谢大家!

您需要在mysite和yelp目录中都有一个
\uuuu init\uuuuuuuuuuuupy
,并且需要将其作为
mysite.yelp
导入

较旧版本的python将允许隐式相对导入,但通常应该有一个可导入的根包,其中的任何内容都应该以全名导入。按照django的工作方式,您的整个站点需要是可导入的包


但是,如果github中有一个现有项目可用,那么最好将整个项目安装到您的系统上,而不是将其复制到您的项目中。这样,如果有更新,您可以跟上最新的内容并更新到最新的版本。

您需要在mysite和yelp目录中都有一个
\uuu init\uuuuuuuuuuuuuuuupy
,并且您需要将其作为
mysite.yelp
导入

较旧版本的python将允许隐式相对导入,但通常应该有一个可导入的根包,其中的任何内容都应该以全名导入。按照django的工作方式,您的整个站点需要是可导入的包


但是,如果github中有一个现有项目可用,那么最好将整个项目安装到您的系统上,而不是将其复制到您的项目中。这样,如果有更新,您可以及时了解最新信息并更新到最新版本。

很抱歉这个问题(我是新来的):您能解释一下什么是可导入的软件包吗?另外,你能解释一下我如何将它作为mysite.yelp“导入”吗?我是否应该将
\uuu init\uuuuuuy.py复制到
yelp`文件夹中?如果我带来新文件夹,是否需要一直这样做?谢谢你首先,看一看。
\uuuu init\uuuu.py
通常只是一个空文件。它只需要在那里向python发出信号,表明它所在的目录是一个包,它可以将包“嫁接”在一起。我所说的“可导入”的意思是,mysite不仅需要是一个目录,还需要是一个带有
\uu init\uuuuuuuuuuuuupy
的包,并且您需要确保如果将
导入mysite
放在manage.py中,您不会得到
导入错误:没有名为mysite
的模块,您或者需要从mysite导入yelp
并将其称为
yelp
,或者更好的方法是
导入mysite.yelp
并将其称为
mysite.yelp
。如果您想在其中使用mysite/yelp/foo.py,您可以
导入mysite.yelp.foo
或从mysite.yelp导入foo
执行
。谢谢!最后一个问题。。。目录的约定是怎样的?我应该把文件放在
polls
目录中吗?或者我应该把
yelp
文件夹放在
polls
目录中吗?根据您的经验,您认为在这种情况下,以及在将来的情况下(如果需要引入一个新的.py文件),我应该做什么。既然我开始新的工作,我就不想养成坏习惯。我想说的是保持它相当流畅,但没有意义将代码嵌套得比它需要的更深。稍微倾向于将代码转储到一个长的.py文件中,并首先将文件转储到顶级目录中,然后开始注意代码中紧密相关的区域,并将它们降级为单独的文件和目录。通常,嵌套在同一目录下的文件将相互导入(当然,没有任何导入周期),如果该目录之外有任何代码,则不会导入太多。对不起,这个问题(我是新手):您能解释一下什么是可导入包吗?另外,你能解释一下我如何将它作为mysite.yelp“导入”吗?我是否应该将
\uuu init\uuuuuuy.py复制到
yelp`文件夹中?如果我带来新文件夹,是否需要一直这样做?谢谢你首先,看一看。
\uuuu init\uuuu.py
通常只是一个空文件。它只需要在那里向python发出信号,表明它所在的目录是一个包,它可以将包“嫁接”在一起。我所说的“可导入”的意思是,mysite不仅需要是一个目录,还需要是一个带有
\uu init\uuuuuuuuuuuuupy
的包,并且您需要确保如果将
导入mysite
放在manage.py中,您不会得到
导入错误:没有名为mysite
的模块,您或者需要从mysite导入yelp
并将其称为
yelp
,或者更好的方法是
导入mysite.yelp
并将其称为
mysite.yelp
。如果您想在其中使用mysite/yelp/foo.py,您可以
导入mysite.yelp.foo
或从mysite.yelp导入foo
执行
。谢谢!最后一个问题。。。目录的约定是怎样的?我应该把文件放在
polls
目录中吗?或者我应该把
yelp
文件夹放在
polls
目录中吗?根据您的经验,您认为在这种情况下,以及在将来的情况下(如果需要引入一个新的.py文件),我应该做什么。既然我开始新的工作,我就不想养成坏习惯。我想说的是保持它相当流畅,但没有意义将代码嵌套得比它需要的更深。稍微倾向于将代码转储到一个长的.py文件中,并首先将文件转储到顶级目录中,然后开始注意代码中紧密相关的区域,并将它们降级为单独的文件