16

我在 Windows 上并尝试在名为Apps的公共文件夹中创建一个新应用程序。myApp文件夹已存在于Apps中。我从项目根目录运行:

python manage.py startapp myApp Apps\myApp

我得到:

Error: 'Apps\\myApp' is not a valid app name. Please use only numbers, letters and underscores.

我不知道为什么那个双反斜杠。为了确定,我还尝试了正斜杠:

python manage.py startapp myApp Apps/myApp

我明白了:

Error: 'myApp' conflicts with the name of an existing Python module and cannot be used as an app name. Please try another name.

我不明白这是 Windows 问题还是 Python 问题。

4

7 回答 7

31

试试这个:

mkdir Apps\newapp
python manage.py startapp NewApp Apps/newapp

您将在文件夹“Apps/newapp”中创建一个名为“NewApp”的应用程序。

于 2012-10-11T15:18:02.880 回答
13

从项目的根目录创建您的Apps目录 -

mkdir Apps

移至您的应用程序目录-

cd Apps

通过调用根项目目录中的 manage.py 来运行 python -

python ../manage.py startapp newapp

给你

于 2018-08-13T03:20:58.750 回答
10

来自文档:

如果提供了可选的目标,Django 将使用该现有目录而不是创建一个新目录。您可以使用 '。' 表示当前工作目录。
django-admin.py startapp myapp /Users/jezdez/Code/myapp

所以尝试python manage.py startapp myApp ./Apps/myApp或使用完整路径。

于 2012-10-11T14:25:01.597 回答
3

Manage.py 文件是 django-admin.py 的精简包装

如果您想在任何目录中创建一个新应用程序

试试这个:

$ cd <directory path>
$ django-admin.py startapp <app-anme>
于 2019-10-17T10:13:46.083 回答
2

我的 Mac 也遇到了同样的问题。
我确实解决了将 Django 从 1.3 版升级到 1.4 版的问题。

于 2013-01-10T18:49:59.507 回答
0

正如文档所说,您可以使用该命令

django-admin startapp name [directory]

但在示例中

django-admin startapp myapp /Users/jezdez/myapp

文档没有说 python 创建了 myapp 文件夹。您应该在 startapp 命令之前执行此操作。

于 2021-07-29T20:55:16.083 回答
0

对于 django 3.2.9

创建一个子目录Apps来存放所有的应用程序,进入它,为应用程序创建一个目录myApp,然后回到根目录

mkdir Apps && cd Apps && mkdir myApp && cd ..

添加__init__.py文件(是一种将目录视为包的python方式)

在 Apps 子目录中创建一个 myApp

manage.py startapp myApp Apps/myApp

(在windows中,请使用反斜杠)上面两行代码将创建myApp

现在,在 settings.py

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',

    # Local
    'Apps.myApp.apps.MyAppConfig', # new
]

在 ./Apps/myApp/apps.py 文件中,更改name='myApp'name='Apps.myApp'将解决问题

于 2021-11-11T10:53:59.710 回答