我最近习惯于在我的django项目中执行以下操作,以便我可以在各种操作系统(即非Linux)上测试bowser兼容性:
$ sudo ./manage.py runserver 0.0.0.0:80
Run Code Online (Sandbox Code Playgroud)
这允许我通过网络上的任何机器访问项目.
但是,我只是设置了一台新机器,此命令发出以下错误:
Traceback (most recent call last):
File "manage.py", line 8, in <module>
from django.core.management import execute_from_command_line
ImportError: No module named django.core.management
Run Code Online (Sandbox Code Playgroud)
我知道django在查找模块时遇到了问题,我不明白的是那个简单的旧模块:
$ sudo ./manage.py runserver
Run Code Online (Sandbox Code Playgroud)
运行很好.我在这里所做的一切都在改变港口吗?当然,它在过去运作良好.
注意
1.我正在使用Django 1.4
2.我在virtualenv和系统上尝试过,我得到了相同的结果.
3.我没有安装django系统(仅限于virtualenvs)
任何帮助将非常感激.
Pau*_*ine 25
我猜sudo命令将在超级用户上下文中运行该进程,而超级用户上下文缺少virtualenv设置.
您可以尝试显式调用virtualenv中的python二进制文件,例如:
sudo $(which python) manage.py runserver 0.0.0.0:80
Run Code Online (Sandbox Code Playgroud)
制作一个shell脚本来设置virtualenv并调用manage.py runserver,然后改为sudo这个脚本.
#!/bin/bash
source /home/darwin/.virtualenvs/foo/bin/activate
cd /path/to/project/foo
python manage.py runserver 0.0.0.0:80
Run Code Online (Sandbox Code Playgroud)
替换/home/darwin/.virtualenvs/foo为您的实际virtualenv /path/to/project/foo的根和项目的根.
这是另一个解决方案,而不是创建shell脚本,只需指定要在命令中使用哪个python可执行文件:
假设你的virtualenv容器被调用.virtualenvs并且myproject在其中调用了一个env ,这是你必须编写的命令:
$ sudo ~/.virtualenvs/myproject/bin/python manage.py runserver 0.0.0.0:80
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13058 次 |
| 最近记录: |