我是Django的新手,每次我试着跑
python panel/manage.py startapp %app%
(面板是我的项目)它给了我错误:
Error: '%app%' conflicts with the name of an existing Python module and cannot be used as an app name. Please try another name.
我做错了吗?
公司或联系人或统计数据当然不是现有Python模块的名称?
答案 0 :(得分:11)
这是一个有趣的 - 您的项目,您的应用需要有不同的名称。您可能创建了一个项目,然后尝试使用相同名称的startapp。
答案 1 :(得分:10)
我也很困惑,直到我意识到Django项目是应用程序的容器;这个序列使它更清晰:
# first create a Project (container).
django-admin.py startproject Project
# create multiple apps
cd Project
python manage.py startapp polls
python manage.py startapp hello
...
答案 2 :(得分:7)
也许你需要
cd panel
python manage.py startapp yourappname
我不确定从项目上方的目录运行命令是否正常。
答案 3 :(得分:2)
如果使用相同的应用名称运行“startapp”两次,则会显示此消息。如上所述,它不会重新加载应用程序,它会创建一个。
答案 4 :(得分:2)
我想也许你已经手动在面板目录中创建了应用程序的目录。命令'startapp'是自动创建应用程序。如果你已经有一个,那就失败了。
答案 5 :(得分:1)
尝试经典的“mysite”或“myproject”。您可以随时删除它,因此如果它被接受,那么您所有的私密想法都会与Python模块冲突。
编辑:我尝试了所有的想法,对我来说没有错误。因此,如果您为django安装了支持库或模块,那么其中一些可以包含这样的名称。
答案 6 :(得分:1)
我有同样的问题,因为我试图重新启动"我的应用程序在执行更改后,但startapp
是用于创建一个新应用程序。要查看更改,请使用python manage.py migrate
将数据库与数据库同步,然后使用python manage.py runserver
重新启动服务器。
来自django-admin
docs
(manage.py
does essentially the same thing as django-admin
)
<强>
startapp <app_label> [destination]
强>django-admin startapp
为其创建Django应用程序目录结构 当前目录或给定目标中的给定应用程序名称。
默认情况下,创建的目录包含models.py文件和其他文件 应用模板文件。 (有关更多详细信息,请参阅源代码。)如果只是应用程序 给出名称,将在当前创建app目录 工作目录。
如果提供了可选目的地,Django将使用该现有目的地 目录而不是创建一个新目录。您可以使用'。'来表示 当前的工作目录。
例如:
<强>
django-admin startapp myapp /Users/jezdez/Code/myapp
强>
答案 7 :(得分:1)
这是我如何明白疑问的过程。
首先,我在项目目录中创建了一个目录并放入__init__.py,models.py,admin.py,apps.py&amp; views.py。
然后我跑了 python manage.py runserver &amp;它运作良好。
然后按照该页面的建议,我使用了startapp命令。我收到了这个错误:
CommandError: 'ucportal' conflicts with the name of an existing Python
module and cannot be used as an app name. Please try another name.
之后我删除了该目录并运行了同名的startapp命令,并且运行正常。
所以&#39; startapp&#39;命令是自动创建应用程序。如果你已经有一个,那就失败了。
@DAG给出的答案为我工作。
答案 8 :(得分:0)
此错误是因为应用程序名称和项目名称之间存在名称冲突。您为应用程序和项目指定了相同的名称。您的项目和应用程序需要使用不同的名称。如果您给出了相同的名称,则上述提及会发生错误。
了解应用和项目之间的区别
项目与应用
项目和应用程序之间有什么区别?应用程序是执行某些操作的Web应用程序 - 例如,Weblog系统,公共记录数据库或简单的轮询应用程序。项目是特定网站的配置和应用程序的集合。项目可以包含多个应用程序。一个应用程序可以在多个项目中。
首先创建项目。 然后创建应用。
注意:应用和项目的名称应该不同
django-admin.py startproject Projectname .
python manage.py startapp Appname
答案 9 :(得分:0)
您应该在代码中为您的项目和应用选择不同的名称:
django-admin startproject **my_project**
python manage.py startapp **my_app**
答案 10 :(得分:0)
我转载了该问题,实际上有些东西无法正常工作。 我想知道我们是偶然发现了Django的错误还是我不理解的限制。
具有一个名为“ project”的项目,并且有一个空文件夹app / newapp …我尝试过:
CommandError: 'newapp' conflicts with the name of an existing Python module and cannot be used as an app name. Please try another name.
它返回:
python manage.py startapp newapp apps/main
但是,如果我将其他路径定位为与我正在启动的应用程序没有相同名称的其他文件夹,那么它将起作用。
所以我最终做了:
{{1}}
使用Django 2.1.3
答案 11 :(得分:0)
在尝试设置Wagtail项目时遇到了这个问题。
在创建应用程序之前,我已经创建并激活了一个具有相同名称的虚拟环境(使用virtualenvwrapper):$ APPNAME。然后,当我运行npm run script
时,Django在$ PYTHONPATH中寻找命名冲突对象,在这种情况下,该冲突对象指向/Users/User/.virtualenvs。
自然,这会导致冲突,因为/Users/User/.virtualenvs/$APPNAME已经存在。
答案 12 :(得分:0)
这些答案都没有帮助我。最后,我最终创建了一个具有不同名称的应用程序,然后将目录重命名为我一直想要的应用程序名称。请注意,您还需要更改apps.py中的类名称以匹配您的应用名称。
答案 13 :(得分:0)
如果您要创建一个包含新应用的空目录
project-dir
└── blog
├── __init__.py
├── ...
├── blog-ext #this empty dir that will contain the new app
└── views.py
所以不要输入:
python manage.py newapp blog/blog-ext
应该是:
django-admin startapp newapp blog/blog-ext
答案 14 :(得分:0)
您需要在使用命令之前创建目录。假设您想要在应用程序文件夹中安装一个投票应用程序。
mkdir apps apps/polls
python manage.py startapp polls apps/polls