【问题标题】:Why does Django development version not know where my packages are?为什么Django开发版不知道我的包在哪里?
【发布时间】:2014-01-23 07:32:13
【问题描述】:

我曾经使用稳定版本 (1.6) 的 Django 开发 Django 应用程序,我使用 sudo apt-get install python-django 安装在 Ubuntu 上,我还使用了 Django 包 sorl-thumbnailtastypie

我后来想改用Django的开发版本,所以我按照他们文档中的说明安装了它:

  1. git clone git://github.com/django/django.git django-trunk
  2. sudo pip install -e django-trunk/

在我的机器上,Django 现在位于 ~/git/django-trunk

但是,当我回到我的 Django 项目目录并运行 python manage.py syncdb 时,我似乎得到了:

Traceback (most recent call last):
  File "manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "/home/$USER/git/django-trunk/django/core/management/__init__.py", line 427, in execute_from_command_line
    utility.execute()
  File "/home/$USER/git/django-trunk/django/core/management/__init__.py", line 391, in execute
    django.setup()
  File "/home/$USER/git/django-trunk/django/__init__.py", line 21, in setup
    apps.populate(settings.INSTALLED_APPS)
  File "/home/$USER/git/django-trunk/django/apps/registry.py", line 84, in populate
    app_config = AppConfig.create(entry)
  File "/home/$USER/git/django-trunk/django/apps/base.py", line 86, in create
    "cannot import name '%s' from '%s'" % (cls_name, mod_path))
ImportError: cannot import name 'thumbnail' from 'sorl'

这是因为Django 不再知道我安装的Django 应用在哪里吗?

我认为他们在/usr/local/lib/python2.7/dist-packages,如果有帮助的话...

如何修复此错误并让我的所有Django 应用程序都可以使用开发版本?我只是需要将git cloneDjango 开发版本转换为/usr/local/lib/python2.7/dist-packages,还是别的什么?

任何帮助将不胜感激,在此先感谢您!

【问题讨论】:

标签: python django git tastypie sorl-thumbnail


【解决方案1】:

您需要使用虚拟环境,并在每个虚拟环境中为您的项目安装依赖项。

这样,Python 解释器将始终可以访问所需的库。开始:

sudo apt-get install -y python-virtualenv

这将安装所有必需的库以使virtualenv 工作;然后为每个项目创建一个全新的虚拟环境。所有这些命令都以您的普通用户身份运行(没有sudo):

$ virtualenv django_env
$ source django_env/bin/activate
(django_env) $ pip install django tastypie solr-thumbnail

键入activate 将激活环境,因此您的shell 将指向正确的Python 版本。您会注意到 (django_env) 表示环境当前处于活动状态。

从此时起,您安装的任何东西都将安装在这个虚拟环境中。完成工作后,输入 deactivate 将返回系统 Python 环境:

(django_env) $ deactivate
$

【讨论】:

  • 假设我想使用Djangodevelopment 版本,我将如何在django_env 中安装它?
  • 只需激活环境,然后输入pip install -e git+https://github.com/django/django.git#egg=django
  • 我似乎在我的django_env 中安装了Django,但是当我尝试运行pip install django tastypie solr-thumbnail 时,我得到: 正在下载/解压tastepie 找不到任何满足tastepie 要求的下载 清理... 根本没有找到适合美味派的发行版 正在 /home/$USER/.pip/pip.log 中存储完整的日志
  • 好的,我看到了错误。 pip install tastypie 应该是 pip install django-tastypie
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多