首先,我知道所有互联网上都有很多这样的帖子,我尝试了所有方法,但没有用。
我也有一些关于它的理论问题。
我在 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
但是当我尝试运行我的运行服务器时,会发生以下情况:
(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
但
(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 从 VirtualEnv 运行 python manage.py runserver 吗?
我知道virtualenv是一种使用独立包的东西,但我不知道我是否错过了一些重要的东西。
我需要了解为什么会这样
谢谢
尝试使用 pip 而不是轻松安装。每个 virtualenv 都默认安装了它(以及包含 easy_install 的 setuptools),这是在 virtualenv 中安装软件包的推荐方法。
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 二进制文件(如果使用 2.x 则为 3.x,如果使用 3.x 作为默认值,则为 2.x)创建一个 Virtualenv
virtualenv --python=/usr/bin/python3.2 myvirtualenv
然后通过检查
python --version
sudo python --version
它们应该是不同的。Virtualenv 仅为激活它的用户替换默认的 Python 环境。因此,easy_install必须使用系统Python而不是virtualenv。也许你也用sudo运行过它?