我正在使用django在Ubuntu中开发一个Web。一切正常。现在,我想更换使用Windows的计算机。当我尝试运行服务器时,它会给出:
E:\DEGNet>py manage.py runserver
File "manage.py", line 14
) from exc
^
SyntaxError: invalid syntax
E:\DEGNet>py
Python 3.6.3 (v3.6.3:2c5fed8, Oct 3 2017, 18:11:49) [MSC v.1900 64 bit (AMD64)]
on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>
如上所示,我安装了Python 3.6.3。我也使用pip3安装了django和其他必要的库。
编辑:manage.py文件,它是我在生成项目时获得的默认manage.py。
#!/usr/bin/env python
import os
import sys
if __name__ == "__main__":
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "DEGNet.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 :(得分:9)
我面临同样的问题,但现在用这个cmd解决了:
python3 manage.py runserver
答案 1 :(得分:4)
编辑您的#!/usr/bin/env python
import os
import sys
if __name__ == "__main__":
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "DEGNet.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)
文件,如下所示:
from exc
请注意,manage.py
已从文件中删除。 public void currentvalue(ref int a)
{
if (a == 5)
{
a = 10;
Console.WriteLine("a" + a);
}
}
文件中不需要它。
答案 2 :(得分:4)
virtualenv pythonpy workon pythonpy#运行这些命令之后,您应该会看到类似的内容,但您的文件路径可能不同:“(pythonpy)C:\ Users \ MyDjangoProject \
python manage.py runserver#这将为您提供localhost的项目路径。将URL复制并粘贴到浏览器中即可。
答案 3 :(得分:2)
正在发生的是使用了错误版本的python,它可能没有你的virtualenv中的所有依赖项。使用sudo manage.py
时出现此错误:使用sudo
更改用于/usr/bin/python
的python版本。
通过指定使用sudo
时使用的python版本来解决问题:
sudo /path/to/my/env/bin/python manage.py makemigrations
答案 4 :(得分:2)
确保您正在从virtualenv运行该应用程序,即,如果您已经为项目创建了virtualenv,请先激活venv。
me@debian:~/Desktop/webapp$source venv/bin/activate
(venv) me@debian:~/Desktop/webapp$python manage.py runserver
答案 5 :(得分:1)
我也遇到了这个错误,但是先安装pipenv即可解决
尝试先运行
pipenv shell django==2.1
那么您应该可以运行
python3 manage.py runserver
答案 6 :(得分:1)
您只是忘记激活虚拟环境,请按照以下步骤操作:
source /home/adel/Dev/Python/DjangoProjects/myproject/venv/bin/activate
然后您可以运行服务器:
python manage.py runserver
答案 7 :(得分:0)
我对 Python 3.4.4 和 Django 2.0 也有同样的问题。我尝试了最后一个解决方案,没有任何作用(不需要删除第14行上的from exc
)。
只需运行服务器:
python manage.py runserver
而不是:
./manage.py runserver #or '.\manage.py runserver' for Windows
答案 8 :(得分:0)
尝试(从命令行):
python3 manage.py runserver
如果我使用了这个(没有python 3 ):
python manage.py runserver
错误仍然存在。此方法允许您不必更改manage.py(这样您就可以保留“from exc”)。
答案 9 :(得分:0)
这样运行没问题:
sudo ./**(your path)**/bin/python manage.py runserver
答案 10 :(得分:0)
我有同样的问题。我只需指定python
版本即输入python3 manage.py runserver
而不是python manage.py runserver
答案 11 :(得分:0)
我遇到了同样的问题,我发现很奇怪,因为我已经激活了虚拟环境并设置了python3,但是,当我使用“ python manage.py runserver”这个语句时,我遇到了这个问题。但是我只遇到一次,然后重新启动虚拟环境,它开始运行,希望您也能成功。
答案 12 :(得分:0)
我重新安装了v env
virtualenv venv --python=python3.7
我安装了django
有效
答案 13 :(得分:0)
我摆脱了周围的环境。
我重新运行了pipenv shell
答案 14 :(得分:0)
首先在找到Env文件夹的命令行上执行以下操作:
source Env/bin/activate
然后现在导航到您的项目目录并执行:
python manage.py runserver
有效!
答案 15 :(得分:0)
我遇到了同样的问题。
激活的 venv 并运行 python manage.py runserver
不起作用。
我可以看到 venv 已激活,但仍然无法正常工作。然后尝试 python3 manage.py runserver
摆脱了 exc
问题,但现在它没有检测到我安装的库。
我所做的破坏它的更改是重命名基本文件夹(类似于 OP 基本文件夹位置的情况现在不同了)。
但是等等,这会如何影响任何事情?
<块引用>在 venv
中存储到 venv/bin/activate
的完整路径的变量是
现在不再有效。
分辨率:
VIRTUAL_ENV
变量并根据所做的新文件夹更改重命名。source venv/bin/activate
python manage.py runserver
多田,一切都恢复正常了,我们可以愉快地享用柠檬水了。