django 导入错误 - 没有名为 core.management 的模块
Posted
技术标签:
【中文标题】django 导入错误 - 没有名为 core.management 的模块【英文标题】:django import error - No module named core.management 【发布时间】:2011-08-28 08:11:06 【问题描述】:好的,我看到很多这样的错误。我已经尝试了所有我知道要做的事情,但还没有弄清楚。
我正在开发一个运行 python 2.5 和 Django 1.3 的开发服务器。 Django 1.3 是在解压 tar.gz 下载后使用 python setup.py install 安装的。
一切正常,我很少需要运行manage.py
,但我正在尝试使用新的静态文件应用程序并遇到问题。
python manage.py collectstatic
Traceback (most recent call last):
File "manage.py", line 2, in <module>
from django.core.management import execute_manager
ImportError: No module named core.management
好的,我有PATH
的问题。
来自Django install,我仔细检查了我的site-packages
目录。
python -c "from distutils.sysconfig import get_python_lib; print get_python_lib()"
/usr/lib/python2.5/site-packages
好的,让我们看看我有什么,echo $PYTHON_PATH 是空的,所以我设置它
export PYTHON_PATH=/usr/lib/python2.5/site-packages/django
仍然没有运气。让我们看看 sys.path 说了什么
>>> import sys
>>> print sys.path
['', '/usr/lib/python2.5', '/usr/lib/python2.5/plat-linux2', '/usr/lib/python2.5/lib-tk', '/usr/lib/python2.5/lib-dynload', '/usr/local/lib/python2.5/site-packages', '/usr/lib/python2.5/site-packages', '/usr/lib/python2.5/site-packages/PIL', '/usr/lib/python2.5/site-packages/django', '/var/lib/python-support/python2.5']
路径在那里,我什至用内容创建了 /usr/lib/python2.5/site-packages/django.pth
cat /usr/lib/python2.5/site-packages/django.pth
/usr/lib/python2.5/site-packages/django/
有人知道这里发生了什么吗?
我发现了一个阻碍路径的符号链接,但没有找到新的错误。
python manage.py collectstatic
Traceback (most recent call last):
File "manage.py", line 14, in <module>
execute_manager(settings)
File "/usr/lib/python2.5/site-packages/django/core/management/__init__.py", line 438, in execute_manager
utility.execute()
File "/usr/lib/python2.5/site-packages/django/core/management/__init__.py", line 349, in execute
version=get_version(),
File "/usr/lib/python2.5/site-packages/django/__init__.py", line 12, in get_version
from django.utils.version import get_svn_revision
ImportError: No module named utils.version
我还尝试创建一个新项目以查看那里是否存在任何问题并得到相同的 utils.version 错误。
侧节点:来自#django 的 Unode 帮助了我一点,在同一台机器上设置 virtualenv 并克服了错误,所以仍然不确定这里实际安装的情况,但它似乎不在 django 项目中,但是在 django/python 安装中。
【问题讨论】:
在 python shell 中输入import django
会发生什么?
@silent1mezzo - 啊忘了把它扔进去,python shell 对 import django 没有抱怨
你跑python manage.py syncdb
了吗?
@silentmezzo - 不在这台机器上,在移动项目之前在我的个人机器上这样做。
尝试先运行它。这有时会导致错误。
【参考方案1】:
这是一个解释器错误。
如果您使用的是 vscode,那么只需按照以下步骤操作:
查看 命令面板 搜索python
选择解释器
选择windows store,您的问题将得到解决,几秒钟后错误消失。
这个问题是因为路径改变了。
【讨论】:
【参考方案2】:环境:Python 3.9.6
、Django 3.2.6
、VS Code
只需禁用 Pylance
扩展并重新加载您的 VS 代码。
【讨论】:
【参考方案3】:只是一个错误 这也发生在我身上。我的错误是我在创建虚拟环境之前创建了 Django 项目,后来激活了环境并试图启动服务器。激活 env 后安装 Django 就可以了
【讨论】:
【参考方案4】:===================================解决方案============ ==============================
首先转到:virtualenv
通过运行命令: 源 bin/激活
并安装 django,因为您收到与“import django”相关的错误:
pip install django
然后运行:
python manage.py runserver
(注意:请将'runserver'改为你要运行的程序名)
对于同样的问题,它适用于我的情况。 ===================================剧情简介=============== ============================
ERROR:
(Development) Rakeshs-MacBook-Pro:src rakesh$ python manage.py runserver
Traceback (most recent call last):
File "manage.py", line 8, in <module>
from django.core.management import execute_from_command_line
ModuleNotFoundError: No module named 'django'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "manage.py", line 14, in <module>
import django
ModuleNotFoundError: No module named 'django'
在处理上述异常的过程中,又发生了一个异常:
Traceback (most recent call last):
File "manage.py", line 17, in <module>
"Couldn't import Django. Are you sure it's installed and "
ImportError: Couldn't import Django. Are you sure it's installed and available on your PYTHONPATH environment variable? Did you forget to activate a virtual environment?
(Development) Rakeshs-MacBook-Pro:src rakesh$
(Development) Rakeshs-MacBook-Pro:src rakesh$
(Development) Rakeshs-MacBook-Pro:src rakesh$ python -Wall manage.py test
Traceback (most recent call last):
File "manage.py", line 8, in <module>
from django.core.management import execute_from_command_line
ModuleNotFoundError: No module named 'django'
在处理上述异常的过程中,又发生了一个异常:
Traceback (most recent call last):
File "manage.py", line 14, in <module>
import django
ModuleNotFoundError: No module named 'django'
在处理上述异常的过程中,又发生了一个异常:
Traceback (most recent call last):
File "manage.py", line 17, in <module>
"Couldn't import Django. Are you sure it's installed and "
ImportError: Couldn't import Django. Are you sure it's installed and available on your PYTHONPATH environment variable? Did you forget to activate a virtual environment?
django 安装后:
(Development) MacBook-Pro:src rakesh$ pip install django
Collecting django
Downloading https://files.pythonhosted.org/packages/51/1a/e0ac7886c7123a03814178d7517dc822af0fe51a72e1a6bff26153103322/Django-2.1-py3-none-any.whl (7.3MB)
100% |████████████████████████████████| 7.3MB 1.1MB/s
Collecting pytz (from django)
Downloading https://files.pythonhosted.org/packages/30/4e/27c34b62430286c6d59177a0842ed90dc789ce5d1ed740887653b898779a/pytz-2018.5-py2.py3-none-any.whl (510kB)
100% |████████████████████████████████| 512kB 4.7MB/s
Installing collected packages: pytz, django
解决后:
(Development) MacBook-Pro:src rakesh$ python manage.py runserver
Performing system checks...
System check identified no issues (0 silenced).
You have 15 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run 'python manage.py migrate' to apply them.
August 05, 2018 - 04:39:02
Django version 2.1, using settings 'trydjango.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
[05/Aug/2018 04:39:15] "GET / HTTP/1.1" 200 16348
[05/Aug/2018 04:39:15] "GET /static/admin/css/fonts.css HTTP/1.1" 200 423
[05/Aug/2018 04:39:15] "GET /static/admin/fonts/Roboto-Bold-webfont.woff HTTP/1.1" 200 82564
[05/Aug/2018 04:39:15] "GET /static/admin/fonts/Roboto-Light-webfont.woff HTTP/1.1" 200 81348
[05/Aug/2018 04:39:15] "GET /static/admin/fonts/Roboto-Regular-webfont.woff HTTP/1.1" 200 80304
Not Found: /favicon.ico
[05/Aug/2018 04:39:16] "GET /favicon.ico HTTP/1.1" 404 1976
祝你好运!
【讨论】:
【参考方案5】:此问题的另一个可能原因是您的操作系统默认运行 python3。
要么你必须明确地这样做:python2 manage.py
或者你需要编辑manage.py
的shebang,像这样:
#!/usr/bin/env python2
或者如果您使用的是 python3:
#!/usr/bin/env python3
【讨论】:
对我来说,我必须这样做#!/usr/bin/env python2.7
【参考方案6】:
因为忘记了我使用pip -U
安装了 Django,所以我得到了这个,所以它只对运行我的 Django 应用程序的用户可用。要运行 manage.py 我必须这样做
sudo su -s /bin/bash MY_DJANGO_USER
/PATH/TO/MY/APP/manage.py
【讨论】:
【参考方案7】:拥有一个名为 site
的应用程序也可以重现此问题。
【讨论】:
【参考方案8】:解决了!!!
在搜索 ages 并尝试了所有其他不起作用的建议后,我终于找到了适合我的设置的解决方案。
我的设置/场景:
Windows、Python27 我的 django 项目通过 svn 签出 在新文件夹中运行python manage.py runserver时出现导入错误 python manage.py runserver 曾经在原始文件夹中工作(我会从中提交更改),直到我将其删除解决方案
删除manage.py目录下所有名为django的文件夹
没错...只要我删除了仅包含 __init__.py 文件的文件夹“django”...我可以再次运行服务器!
不知道为什么
【讨论】:
因为带有 __init__.py 文件的文件夹被视为 python 模块。所以你不应该命名隐含的模块目录 django【参考方案9】:python3 manage.py runserver
检查 Python 的版本
【讨论】:
【参考方案10】:我通过使用 'django-admin' 命令解决了这个问题,如下所示:
django-admin startproject _project_name
只需删除附加到“django-admin”的“.py”
【讨论】:
【参考方案11】:我在尝试在 Raspberry Pi 2(并且不是 VM上运行嵌入式系统(当然是使用 django)时遇到此错误>)
运行这个:
sudo pip install Django
成功了!
以防万一使用 Raspbian/Jessie 的人得到这个【讨论】:
【参考方案12】:你们所有人都没有提到“像我这样的人”会在安装 virtualenv 之前安装 django 的情况......所以对于我这样的所有人来说,如果你这样做了......在激活 virtualenv 后重新安装 django ..我希望这会有所帮助
【讨论】:
这不是解决方案。这是 Steve k 对另一个解决方案的评论。 这就是发生在我身上的事情,这就是我修复它的方法......这是任何初学者都可能陷入的错误【参考方案13】:在我发出 startapp 命令之前,我在 settings.py 中的 INSTALLED_APPS 列表中包含了新应用程序的名称。删除列表条目后,我可以创建应用程序。
【讨论】:
【参考方案14】:将 python python 路径存储在变量中并执行。这将包括否则丢失的包。
python_path= `which python`
$python_path manage.py runserver
【讨论】:
【参考方案15】:您可能正在使用 virtualenvwrapper。不要忘记通过运行来选择您的环境:
$ workon env_name
【讨论】:
【参考方案16】:我通过将 #PATH="$VIRTUAL_ENV/bin:$PATH" 更改为 PATH="$PATH:$VIRTUAL_ENV/bin" 解决了这个问题 由于对我来说不明显的原因,virtualenv 目录中的 python 可执行文件看不到 django,但正常安装的 python 可以。
【讨论】:
【参考方案17】:如果像我一样,您在 virtualenv 中运行 django 并遇到此错误,请查看您的 manage.py
。
第一行应该定义用于运行脚本的 python 可执行文件。
这应该是你的 virtualenv 的 python 的路径,但它是像 /usr/bin/python 这样的错误,它不是同一个路径,将使用全局 python 环境(并且会丢失包)。
只需将路径更改为 virtualenv 中 python 可执行文件的路径即可。
您也可以用#!/usr/bin/env python
替换您的shebang 行。这应该使用正确的 python 环境和解释器,前提是您首先激活您的 virtualenv(我假设您知道如何执行此操作)。
【讨论】:
或像<path-to-my-env>/bin/python manage.py runserver
一样运行
好发现!这正是问题所在!
另外,呃...记得激活virtualenv。哦!
无论如何,您都可以在 virtualenv 中提供 python 可执行文件的路径示例。例如,我的虚拟环境路径是 /Users/Chris/virtualenv/my_first_venv 并且我做了第一行 #!/Users/Chris/virtualenv/my_first_venv/,但我仍然遇到同样的错误。我想我可能对shebang做错了......
您可能忘记在路径末尾添加 python 可执行文件:#!/Users/Chris/virtualenv/my_first_venv/bin/python
或类似的东西?【参考方案18】:
这个错误通常发生在没有安装django的时候。 如果您已经安装了 django 但仍然遇到相同的错误,那么您必须在单独的虚拟环境中工作。您还需要在虚拟环境中安装 django。当您在虚拟机的外壳中时,只需执行以下操作:
pip 安装 django
这是因为虚拟机有单独的文件系统,即使安装在你的系统上它也无法识别django。
【讨论】:
【参考方案19】:好的,它是这样的:
您已经创建了一个虚拟环境,而 django 模块仅属于该环境。由于 virtualenv 将自己与其他一切隔离开来,因此您会看到这个。
通过此获取更多帮助:
http://www.swegler.com/becky/blog/2011/08/27/python-django-mysql-on-windows-7-part-i-getting-started/
1.你可以切换到你的虚拟环境所在的目录,然后运行django模块。
2.或者,您可以通过运行 pip 或 easy_install 将 django 全局安装到您的 python->site-packages
使用 pip 的命令:pip install django
然后这样做:
导入 django print (django.get_version()) (取决于你使用的python版本。这适用于python 3+系列)
然后你可以运行这个: python manage.py 运行服务器 并通过键入 :localhost:8000 检查您的网络浏览器 你应该会看到 django 驱动的页面。
希望这会有所帮助。
【讨论】:
【参考方案20】:我在尝试创建新应用时遇到了同样的问题。如果你写python manage.py startapp myapp
,那么它会寻找usr/bin/python。但是你需要这个“python”,它位于你的 virtual env path 的 /bin 目录中。我通过提到 virtualenv 的 python 路径来解决这个问题:
<env path>/bin/python manage.py startapp myapp
【讨论】:
【参考方案21】:对于那些使用 Django 1.6 或更高版本的人,请注意execute_manager was removed。在第二个 SO 答案 here 中发布了一个解决方案。
【讨论】:
【参考方案22】:我遇到了同样的问题,因为我以超级用户身份安装 Django,因此不在我的 virtualenv 中。你不应该这样做sudo pip install Django
改为这样安装:
$ source ./bin/activate
$ pip install Django
【讨论】:
但是没有 sudo 你会得到: OSError: [Errno 13] Permission denied: '/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages /django' @aviggiano 谢谢!!!我挣扎了 30 分钟试图弄清楚这一点......我是 Django 的菜鸟,所以谢谢你!【参考方案23】:确保您正在运行正确的 Python 实例,并且路径上有正确的目录。就我而言,这个错误是由于意外运行了python
可执行文件而导致的——我实际上已经在python2.7
框架和库下安装了Django。 virtualenv 也可能发生同样的情况。
【讨论】:
【参考方案24】:如果您在 virtualenv 中,则需要先激活它才能运行 ./manage.py 'command'
source path/to/your/virtualenv/bin/activate
如果你在 .bash_profile 或 .bashrc 中配置工作
workon yourvirtualenvname
*请不要编辑你的 manage.py 文件,这可能不是正确的方式,可能会给你未来的错误
【讨论】:
这也为我做了半夜努力让它工作之后。非常感谢@elin3t。【参考方案25】:来源 ~/blog-venv/bin/activate
在此处选择您的 virtualenv 来替换“blog-venv”。
【讨论】:
谢谢,这解决了我的问题:File "manage.py", line 8, in <module> from django.core.management import execute_from_ ImportError: No module named django.core.management
【参考方案26】:
完全同意这是一个路径问题,但是我遇到了同样的错误。这是由于在设置我的虚拟环境时错误地为我的 Python 可执行文件使用了相对路径。我已经这样做了:
virtualenv -p ~/python_runtimes/2.7.3/bin/python venv2.7.3 --distribute
相反,我必须提供 Python 可执行文件的完整路径。
HTH, 哈林
【讨论】:
【参考方案27】:尝试更改 manage.py 的第一行。
改变
#!/usr/bin/python
通过
#!/usr/bin/env python
【讨论】:
反过来帮助了我。将#!/usr/bin/env python
替换为#!/usr/bin/python
env 是一个常见的 unix bin,用于获取 os 环境 bin 链接,取决于操作系统配置或 python 安装,bin 可能位于与 /usr/bin/ 不同的路径中,您的解决方案也将不起作用如果 'env' bin 安装在不同的位置,将无法工作。【参考方案28】:
对我来说,我的服务器使用的是 Python 2.4。我只是查找了安装在我的服务器上的 Python 2.7,并创建了一个别名。
alias python=python2.7
如果您需要了解更多,我找到了解决方案here
【讨论】:
【参考方案29】:我遇到了类似的问题。 PyCharm 无法运行服务器,但我可以从命令行运行它。我尝试了 which python,然后确保 PyCharm 是同一个解释器,然后一切正常。
【讨论】:
【参考方案30】:众所周知,这是一个路径问题。
我的自定义包的基础与 /etc/profile 中设置的目录共享一个名称。但是对于网络服务器,这些软件包位于不同的位置。所以我从我的 $PYTHONPATH 中删除了有问题的条目,一切顺利!
感谢您的帮助。
【讨论】:
以上是关于django 导入错误 - 没有名为 core.management 的模块的主要内容,如果未能解决你的问题,请参考以下文章
django 导入错误 - 没有名为 core.management 的模块
升级到 Django 1.7。导入错误:没有名为仪表板的模块