Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何从Django中的子目录导入包_Python_Django - Fatal编程技术网

Python 如何从Django中的子目录导入包

Python 如何从Django中的子目录导入包,python,django,Python,Django,我知道有很多类似的问题和答案,但我真的做不到。 我将views.py、models.py和forms.py拆分为相应文件夹中的几个文件。因此,文件夹结构如下所示: myapp \__init__.py \admin.py \forms \__init__.py \my_forms.py \views \__init__.py \my_views.py \models \__init__.py \my_models.p

我知道有很多类似的问题和答案,但我真的做不到。 我将
views.py
models.py
forms.py
拆分为相应文件夹中的几个文件。因此,文件夹结构如下所示:

myapp
  \__init__.py
  \admin.py
  \forms
     \__init__.py
     \my_forms.py
  \views
     \__init__.py
     \my_views.py
  \models
     \__init__.py
     \my_models.py
在相应的
\uuuu init\uuuuu.py
文件中,我添加了:

   from my_file import *
其中,
myu文件
对应于
myu表单
myu视图
myu模型

现在我正试图从
my_views.py
导入表单:

   from myapp.forms import MyForm
因此,我得到以下错误:

没有名为forms的模块

有人能指出我做错了什么吗?

我找到了问题所在。那是我愚蠢的错误。实际上,目录结构是这样的:

myapp
 |--__init__.py
 |--admin.py
 |--forms
     |--__init__.py
     |--myapp.py
 |--views
     |--__init__.py
     |--myapp.py
 |--models
     |--__init__.py
     |--myapp.py
也就是说,我将表单、视图和模型文件命名为与应用程序名称相同的名称(例如,应用程序名称为“contacts”,模型文件为“contacts.py”)。这使我找到了问题中的错误

因此,不要将内部文件命名为与应用程序相同的名称。尽量避免使用相同的名称;)


非常感谢所有试图提供帮助的人。

PythonMyApp在PYTHONPATH中的完整路径,正如YardenST建议的那样,感谢各位的回复。不,我没有向PYTHONPATH手动添加任何内容。我应该手动将模块添加到python路径吗?我只是想将它们用作普通的python模块。请给我一个链接,a可以在这里阅读django和python路径中的模块吗?myapps中的
是否会导入表单
,然后使用
表单。MyForm
而不仅仅是
MyForm
也会给出一个错误?@MattiasNilsson,是的,它还提供了一个错误。我尝试了不同的变体:
来自myapp.my_表单导入MyForm
来自myproj.myapp.my_表单导入MyForm
来自my_表单导入MyForm
。我甚至将
my_forms.py
复制到
/myapp/my_forms1.py
中,并尝试从myapp.my_forms1导入MyForm,从
/myapp/views/my_views.py
文件夹中导入MyForm,但这没有任何帮助,尽管当
my_views.py
正好位于
/myapp
文件夹中时它起作用。