【问题标题】:How to install and use Django 1.0 in virtualenv如何在 virtualenv 中安装和使用 Django 1.0
【发布时间】:2012-11-02 20:11:00
【问题描述】:

我正在尝试安装 Django 1.0,我可以使用 pip install django 在 vi​​rtualenv 中安装最新版本的 Django,但我不需要它,我只想安装 Django 1.0,因为我必须做一些简单的工作。

我尝试过以下事情,但最后它使用了安装在我的系统上的 django1.4,没有任何 virtualenv,以下是我尝试过的:

-laptop:/var/www/python_virtualenv$ virtualenv newenv
 New python executable in newenv/bin/python
Installing   distribute.............................................................................................................................................................................................done.

安装 pip........完成。

然后在 cd 到 newenv 之后,激活并安装我使用以下命令下载的 Django 1.0:

hafiz@hafiz-laptop:/var/www/python_virtualenv/newenv$ source bin/acivate
bash: bin/acivate: No such file or directory
hafiz@hafiz-laptop:/var/www/python_virtualenv/newenv$ source bin/activate
(newenv)hafiz@hafiz-laptop:/var/www/python_virtualenv/newenv$ sudo python /home/hafiz/Downloads/Django-1.0.4/setup.py install
running install
running build
running build_py
running build_scripts
running install_lib
running install_scripts
changing mode of /usr/local/bin/django-admin.py to 775
running install_data
running install_egg_info
Removing /usr/local/lib/python2.7/dist-packages/Django-1.0.4.egg-info
Writing /usr/local/lib/python2.7/dist-packages/Django-1.0.4.egg-info
(newenv)hafiz@hafiz-laptop:/var/www/python_virtualenv/newenv$ 

然后使用以下方法创建项目:

(newenv)hafiz@hafiz-laptop:/var/www/python_virtualenv/newenv$ sudo python /usr/local/bin/django-admin.py startproject proj

然后 cd 到 proj 然后使用以下命令启动服务器:

(newenv)hafiz@hafiz-laptop:/var/www/python_virtualenv/newenv/proj$ sudo python manage.py runserver 0.0.0.0:8080
  Validating models...

  0 errors found
  Django version 1.4, using settings 'proj.settings'
  Development server is running at http://0.0.0.0:8080/
  Quit the server with CONTROL-C.

但可以看出,Django 启动是 Django 1.4 版,使用设置'proj.settings',所以我做错了什么?

【问题讨论】:

  • 为什么要使用sudo来启动服务器?
  • @Guandalino 不错,虽然这不是问题所在。
  • @Guandalino 因为否则它无法启动并报告无法导入的东西,所以我认为由于某些权限相关问题而无法导入,这是否会导致问题并从全球环境?

标签: python django virtualenv virtualenv-commands


【解决方案1】:

当您执行sudo python /home/hafiz/Downloads/Django-1.0.4/setup.py install 时,该命令将作为root 执行,它不会使用virtualenv(幸运的是!),因此这会在系统范围内安装,而不是在virtualenv 中,这违背了virtualenv(参见@miki725 的评论)。

您实际上可以通过查看安装的输出来确认这一点(请参阅millimoose 的评论)

changing mode of /usr/local/bin/django-admin.py to 775

您运行的所有其他命令也是如此。

结论:

您应该从所有命令中删除sudo

【讨论】:

  • 见鬼,该命令下方的安装程序输出显示它安装到/usr/local
  • 只是补充一点:virtualenv 的全部意义在于不需要 root 访问权限并安装与 venv 相关的东西...
  • 这是否意味着我的全局django设置被修改了?在开始使用全局设置之前,我需要重新安装全局版本,或者它没有对全局和 localenv 进行任何更改?
  • @Hafiz 很可能您的系统 Django 安装已被修改,您可能需要验证这一点。
  • 是否有一些工具可以验证或者我只需要运行我现有的项目来测试它?
【解决方案2】:

也许你可以尝试像这样使用pip 安装 django:

pip install https://www.djangoproject.com/download/1.0.4/tarball/

【讨论】:

  • 或者干脆pip install django==1.0.4
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-22
  • 1970-01-01
  • 1970-01-01
  • 2014-03-24
  • 2013-10-11
  • 1970-01-01
相关资源
最近更新 更多