运行django-admin startproject myproject时没有名为django.core的模块

时间:2017-07-10 17:38:42

标签: python django

在macOS上运行django-admin startproject myproject时出现错误

  

追踪(最近的呼叫最后):
  文件" / usr / local / bin / django-admin",第2行,在       来自django.core进口管理
  ImportError:没有名为django.core的模块

我检查了this question但是运行import django不会在python3 shell中产生任何输出。

/usr/local/bin/django-admin/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/django/bin/django-admin.py的符号链接。

我已按照其他问题的建议将/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/django放入我的PYTHONPATH。

我错过了什么吗?

4 个答案:

答案 0 :(得分:3)

即使你让它发挥作用,做你正在做的事情也不是好习惯!理想情况下,你想要在/ usr / local / bin /中唯一与python相关的二进制文件是python,pip和virtualenv(或者venv,pyvenv)...

我建议你删除/Library/Frameworks/Python.framework/Versions/3.6,只要你在那里安装它。据我所知,macOS只安装python2.7而不是python3.6!

然后打开一个新的shell并试试这个:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
brew install python3
pip3 install virtualenv
cd ~/Desktop/
mkdir proj
cd proj
virtualenv -p python3 env
source env/bin/activate
pip install django
django-admin.py startproject testproj

如果您已安装brew,请跳过第一步

答案 1 :(得分:2)

使用/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/命令检查ls -la中的权限。如果您看到root拥有的任何内容,则可能需要更改。我怀疑,因为你以root用户身份安装了一些软件包,所以权限很奇怪,无法找到模块。如果是这种情况,请使用sudo将您的软件包重新安装为您自己的用户。

你应该检查的另一件事:正如博士提到你需要确保你使用的是你认为自己的版本python。通过运行which python来告诉您所引用的位置,然后python --version告诉您正在使用的版本,从而检查这一点。如果它不是Python 3.6,那么你为不同版本的Python安装了Django。在这种情况下,只需安装Django for 3.6版本即可开始使用。

为了将来的参考,Python提供了一个名为venv的模块来防止像这样的版本失误。可以找到更多信息here

答案 2 :(得分:1)

您似乎在尝试在不使用python虚拟环境的情况下创建或处理django项目。我建议查看python 3 venv文档(https://docs.python.org/3/library/venv.html)。然后专门为您的Web应用程序创建一个虚拟环境(venv)。一旦你成为该项目的venv设置,你就可以将django安装到那个venv。

答案 3 :(得分:0)

在MacOS上,在命令前使用 sudo

sudo django-admin startproject myproject