我正在关注Django教程https://docs.djangoproject.com/es/1.10/intro/tutorial01/
我创建了一个“mysite”虚拟项目(我的第一个)并尝试在不改变它的情况下进行测试。
django-admin startproject mysite
cd mysite
python manage.py runserver
File "manage.py", line 14
) from exc
^
SyntaxError: invalid syntax
我在系统自身生成的文件上遇到了SyntaxError。我似乎找不到其他任何经历过同样问题的人。
我会添加一些我的设置数据,以防它可能有用
$ vpython --version
Python 2.7.12
$ pip --version
pip 9.0.1 from /home/frank/.local/lib/python2.7/site-packages (python 2.7)
$ python -m django --version
1.10.6
有人可以帮帮我吗?
更新:添加自动生成的manage.py
的内容cat manage.py
#!/usr/bin/env python3
import os
import sys
if __name__ == "__main__":
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite.settings")
try:
from django.core.management import execute_from_command_line
except ImportError as exc:
raise 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?"
) from exc
execute_from_command_line(sys.argv)
答案 0 :(得分:54)
确保将django连接到哪个python版本。
当你使用pip install django安装django时,你必须运行python manage.py startapp else如果你使用pip3 Click here to view terminal example安装django,那么你必须运行python3 manage.py startapp
答案 1 :(得分:15)
您可以尝试使用python3 manage.py runserver
。
它对我有用。
答案 2 :(得分:13)
您应该激活您的虚拟环境。 在终端 - > source env / bin / activate 现在会有----> (env)在您的终端显示!
现在它会起作用 - > runserver。
无需删除exc部分!
答案 3 :(得分:8)
它实际上是一个简单的解决方案。您是否激活了虚拟环境?
答案 4 :(得分:7)
我遇到了相同的情况,但这是通过使用以下特定的python 3.6运行解决的:
python3.6 manage.py runserver
答案 5 :(得分:5)
要运行Python版本3,您需要使用python3
而不是python
。
因此,最后的命令将是:
python3 manage.py runserver
答案 6 :(得分:5)
在使用精确指令(使用python2或python3而不仅仅是“python”)进行测试后,我已经确定了无论教程说什么,这只适用于python3。
答案 7 :(得分:4)
解决方案很简单。来自manage.py的异常 是因为当使用python运行命令时,Django无法 预测确切的python版本, 说您可能有3.6、3.5、3.8,并且可能只有此版本的pip模块之一用于安装Django 要解决此问题,请使用:
./manage.py `enter code here`<command>
或使用确切的python版本(x.x)站立:
pythonx.x manage.py <command>
否则,使用虚拟环境可能会派上用场 因为它可以轻松地将任何pip django模块与python版本相关
答案 8 :(得分:4)
最好创建一个虚拟环境并在此虚拟环境中运行Django代码,这有助于不更改现有环境。这是从虚拟环境和Django开始的基本步骤。
创建一个新目录并cd进入它。
mkdir test
,cd test
安装并创建虚拟环境。
python3 -m pip install virtualenv
virtualenv venv -p python3
激活虚拟环境:source venv/bin/activate
安装Django:pip install django
开始一个新项目:django-admin startproject myproject
cd到您的项目并运行项目:
cd myproject
,
python manage.py runserver
您可以在这里查看您的项目:http://127.0.0.1:8000/
答案 9 :(得分:3)
只需删除from exec
部分即可获得类似
if __name__ == "__main__":
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite.settings")
try:
from django.core.management import execute_from_command_line
except ImportError as exc:
raise 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?"
)
execute_from_command_line(sys.argv)
答案 10 :(得分:2)
您必须激活已安装django的虚拟环境。 然后运行此命令 - python manage.py runserver
答案 11 :(得分:1)
此外,本教程还建议使用虚拟环境(请参阅Django文档:https://docs.djangoproject.com/en/2.0/topics/install/#installing-official-release&#34;)。您可以使用pipenv --three
执行此操作。使用pipenv install django
安装django并使用pipenv shell
激活虚拟环境后,python将在执行python manage.py runserver
时引用python3。
Pipenv文件: https://docs.pipenv.org/
答案 12 :(得分:1)
看来您的计算机上有多个版本的Python。 尝试删除其中一个,并保留您用于开发应用程序的唯一版本。
如果需要,您可以升级您的版本,但请确保您的计算机上只有一个Python版本。
我希望这会有所帮助。
答案 13 :(得分:1)
我们必须在项目内创建一个虚拟环境,而不是在项目之外。 然后它会解决..
答案 14 :(得分:1)
我在使用 pipenv 时遇到了同样的错误。该问题是由于未从虚拟环境中正确访问 Django 引起的。
使用pipenv的正确步骤:
pipenv shell
pipenv install django
django-admin startproject myproject
cd myproject
pipenv run python manage.py runserver
注意:Pipenv 将在虚拟环境中使用正确的 python 版本和 pip。
答案 15 :(得分:1)
django-admin可能是错误的文件。我遇到了同样的问题,我没有在另一台计算机上找到相同的设置流程。
在比较了两个项目之后,我在manage.py和settings.py上找到了一些区别,然后我意识到我创建了2.0 django项目但是用python2运行它。
在iterm中运行let appDelegate = UIApplication.shared.delegate as! AppDelegate
var aVC: AViewController?
if let viewControllers = appDelegate.window?.rootViewController?.childViewControllers {
for vc in viewControllers {
print(vc.debugDescription)
if vc.isKind(of: AViewController.self) {
aVC = vc as! AViewController
break
}
}
}
if let vc = aVC {
let navigation = UINavigationController(rootViewController: vc)
AppDelegate.delegate().setRootViewController(view: navigation)
} else {
let vc = self.storyboard?.instantiateViewController(withIdentifier: "AViewController") as? AViewController
self.present(vc!, animated: true)
}
class AManager {
static let sharedInstance = AManager()
}
看起来我在python3中有一个django-admin,我不知道为什么。所以我试图得到正确的django-amin。
which django-admin
然后我得到了
/Library/Frameworks/Python.framework/Versions/3.6/bin/django-admin
在pip show django
中,我找到了django-admin
Name: Django
Version: 1.11a1
Summary: A high-level Python Web framework that encourages rapid development and clean, pragmatic design.
Home-page: https://www.djangoproject.com/
Author: Django Software Foundation
Author-email: foundation@djangoproject.com
License: BSD
Location: /Library/Python/2.7/site-packages
Requires: pytz
所以我再次通过
创建了项目/Library/Python/2.7/site-packages
然后运行
/Library/Python/2.7/site-packages/django/bin/django-admin.py
成功
答案 16 :(得分:0)
我遇到了同样的问题,但我所做的是,
刚刚替换:
python manage.py runserver
与
python3 manage.py runserver
在终端(macOsX)中。因为我使用的是 Python 3.x 版
答案 17 :(得分:0)
您可以通过将manage.py文件中的代码修改为以下代码来解决此问题
#!/usr/bin/env python
import os
import sys
if __name__ == "__main__":
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "djangochallenge.settings")
try:
from django.core.management import execute_from_command_line
except ImportError:
try:
import django
except ImportError:
raise 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?"
)
raise
execute_from_command_line(sys.argv)
,您的服务器应该可以正常工作。
答案 18 :(得分:0)
激活您的虚拟环境,然后尝试收集应该起作用的静态文件。
$ source venv/bin/activate
$ python manage.py collectstatic
答案 19 :(得分:0)
这通常发生在未安装 Django 而您尝试运行 manage.py
文件时。运行 pip3 install django
或 pip install django
或 python -m pip install django
或 python3 -m pip install django
以先安装 Django。
如果您认为自己已经安装了 Django,请运行 pip
/pip3
/python -m pip
/python3 -m pip show django
。如果您得到 Warning: Package(s) not found: django
,则表示您尚未安装 Django。
如果您有虚拟环境,请在基于 Unix 的系统(如 Mac 或 Linux)上运行 source env/bin/activate
以激活环境,其中 env
是包含您的虚拟环境的文件夹。在 Windows 上,运行 env\Scripts\activate
以激活环境。
答案 20 :(得分:0)
使用更高版本的Django和旧的python(可能是2.x版本)生成错误。
要解决此问题,我必须删除.venv
文件夹并使用virtualenv -p python3 .venv && source .venv/bin/activate
重新创建
答案 21 :(得分:0)
对我来说,这段代码有效
python3 manage.py runserver
答案 22 :(得分:0)
我遇到了这个问题(Mac),并按照下一页上的说明安装和激活虚拟环境
https://packaging.python.org/guides/installing-using-pip-and-virtual-environments/
$ cd [top-level-django-project-dir]
$ python3 -m pip install --user virtualenv
$ python3 -m venv env
$ source env / bin / activate
一旦我安装并激活了虚拟环境,便对其进行了检查
$哪个python
然后我将django安装到虚拟环境中
$ pip安装Django
然后我可以运行我的应用
$ python3 manage.py runserver
当我进入本教程的下一部分
$ python manage.py startapp民意调查
我遇到了另一个错误:
File "manage.py", line 16
) from exc
^
SyntaxError: invalid syntax
我删除了
from exc
然后它创建了民意调查目录
答案 23 :(得分:0)
使用以下方法激活虚拟环境时,也解决了我的问题:
source bin/activate
答案 24 :(得分:0)
答案 25 :(得分:0)
我遇到了完全相同的错误,但是后来我发现我忘记激活装有django和其他必需软件包的conda环境。
解决方案:创建一个安装了django的conda或虚拟环境,
并在使用命令之前将其激活:
$ python manage.py migrate
答案 26 :(得分:0)
以下可能是可能的原因,
liquibase.exception.MigrationFailedException: Migration failed for change set /changelog/00000000000001.xml::00000000000001::IAmUser:
Reason: java.lang.NumberFormatException: For input string: "0000000Z"
创建虚拟环境
1. The virtual environment is not enabled
2. The virtual environment is enabled but the python version is different
激活虚拟环境
$ virtualenv --python=python3 venv
答案 27 :(得分:0)
我遇到了同样的异常,因为我忘记了激活虚拟环境。
答案 28 :(得分:0)
首先使用终端cd进入包含manage.py的目录
然后输入$source <myvenv>/bin/activate
用您的虚拟环境名称替换,不带尖括号。
另一个问题可能是您的根目录和venv不匹配。 结构应如下所示:
|-website
..facebook
..manage.py
..myvenv
..some other files
这是您的虚拟环境,manage.py应该位于同一文件夹中。解决方案是重新启动项目。如果您遇到此错误,则必须尚未编写任何代码,因此请重新启动。
答案 29 :(得分:0)
我解决了同样的情况。
安装的版本
python 3.6,django 2.1
情况
我在Windows 10中安装了Node.js。在python manage.py runserver
引起错误之后。
错误
File "manage.py", line 14
) from exc
^
SyntaxError: invalid syntax
原因
我的python路径从python-3.6更改为python-2.7。 (我的PC上的3.6是正确的。)
解决方案
修复python路径。
答案 30 :(得分:0)
通过以下命令激活环境
menuItems = [
{
title: 'Key Leadership'
},
{
title: 'Financial Results'
},
{
title: 'Business Summary',
values: [
{ title: 'Key Strategy'},
{ title: 'CompanyInReport'}
]
},
{
title: 'Operating Locations'
}]
然后运行命令
source pathetoYourEnv/bin/activate
答案 31 :(得分:0)
我解决了这个问题,以卸载多个版本的Python。 检查Django Official Documentation是否具有Python兼容性。
Django 2.1支持Python 3.5、3.6和3.7。 Django 2.0是最后一个支持Python 3.4的版本。”
manage.py文件
#!/usr/bin/env python
import os
import sys
if __name__ == '__main__':
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'work.settings')
try:
from django.core.management import execute_from_command_line
except ImportError as exc:
raise 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?"
) from exc
execute_from_command_line(sys.argv)
如果从此代码的第二行中删除“ from exc”,由于多个版本的Python,还会产生另一个错误。
答案 32 :(得分:0)
只需描述您的python版本
=> python3.5 manage.py runserver
(我的python版本= 3.5)
答案 33 :(得分:0)
我有同样的问题,可以解决。它与您已安装的Django版本有关,其中一些不受python 2.7支持。如果您使用pip安装了Django,则意味着您正在安装python 2.7可能不支持的最新版本。您可以获取有关here的更多信息。我建议使用python 3或在安装过程中指定Django的版本(对于python 2.7为1.11)。
答案 34 :(得分:0)
只需:
pipenv shell
然后重复:
python manage.py runserver
并且不要如上所述删除from exc
。
欢呼!
答案 35 :(得分:0)
您是否已进入django的虚拟环境?如果尚未安装,请运行python -m venv myvenv
。
答案 36 :(得分:0)
对于未来的读者, 我也有同样的问题。原来直接从网站安装Python以及Anaconda的另一个版本导致了这个问题。我不得不卸载Python2.7,只保留anaconda作为唯一的发行版。
答案 37 :(得分:0)
我想知道的是,虽然django已安装到容器中,但它可能不在您运行命令的主机中。然后该命令将如何运行。因为没有上述解决方案对我有用。
我找到了正在运行的容器并使用docker exec -it <container> bash
进入正在运行的容器,然后在docker容器中运行命令。由于我们有自备容器,所做的更改也将在本地反映出来。要运行的命令可以在正在运行的容器中运行