首先,我知道在所有互联网上都有很多类似这样的帖子,我尝试了所有内容但是没有用。
我也有一些理论问题。
我在Virtualenv中运行我的Django安装,所以输入:
sudo apt-get install python-setuptools
virtualenv --no-site-packages djangito
source djangito/bin/activate
(djangito)cd djangito/
(djangito)easy_install Django // V.1.6
(djangito)django-admin.py startproject django_test
但是当我尝试运行我的runserver时:
(djangito)root@marcproves:~/djangito/django_test# 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
ImportError: No module named django.core.management
BUT
(djangito)root@marcproves:~/djangito/django_test# sudo python manage.py runserver
Validating models...
0 errors found
February 20, 2014 - 09:25:14
Django version 1.6, using settings 'django_test.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
它与sudo一起运行但是....使用 sudo python manage.py runserver 从VirtualEnv运行python?
我知道virtualenv是一种与独立包装一起工作的东西,但我不知道我是否遗漏了一些重要的东西。
我需要了解为什么会发生这个
全部谢谢
答案 0 :(得分:1)
尝试使用pip而不是简单安装。默认情况下,每个virtualenv都安装了它(以及包含easy_install的setuptools),这是在virtualenvs中安装软件包的推荐方法。
racech@CONFIG0001:~$ sudo apt-get install python-virtualenv
[...]
racech@CONFIG0001:~$ virtualenv test
New python executable in test/bin/python
Installing distribute.....done.
Installing pip...............done.
racech@CONFIG0001:~$ source test/bin/activate
(test)racech@CONFIG0001:~$ pip install django
[...]
Successfully installed django
Cleaning up...
(test)racech@CONFIG0001:~$ django-admin.py startproject testproject
(test)racech@CONFIG0001:~$ cd testproject/
(test)racech@CONFIG0001:~/testproject$ python manage.py runserver
Validating models...
0 errors found
February 20, 2014 - 10:12:51
Django version 1.6.2, using settings 'testproject.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
至于解释,看起来像easy_install安装Django不是你的virtualenv,而是你的系统Python。您可以通过使用不同版本的Python创建新的virtualenv来检查它。使用默认的Python二进制文件制作Virtualenv(如果使用2.x则为2.x,如果默认使用3.x则为2.x)
virtualenv --python=/usr/bin/python3.2 myvirtualenv
然后通过
检查python --version
sudo python --version
他们应该是不同的。 Virtualenv仅为激活它的用户替换默认的Python环境。因此easy_install必须使用系统Python而不是virtualenv。也许你确实用sudo运行了它?