【发布时间】:2013-09-06 09:42:10
【问题描述】:
我无法在生产服务器上安装 django-haystack。
当我运行以下任何命令时,我收到错误 No module named haystack:python manage.py syncdbpython manage.py runserverpython manage.py shell
这是在开发服务器上运行的现有项目的克隆,所以我相信我的 settings.py 配置正确。
我在一个 virtualenv 中工作。我曾多次尝试使用 pip 卸载并重新安装 django-haystack。
什么可能导致这个错误?
更新:
通过以下步骤获得了更多数据:
在 virtualenv 内部:pip freeze - django-haystack 未列出。
在 virtualenv 之外:pip freeze - 列出了 django-haystack。
外部虚拟环境:sudo pip uninstall django-haystack
在 virtualenv 之外:pip freeze - django-haystack 未列出。
在 virtualenv 内部:which pip - /home/{user}/.virtualenvs/{virtualenv}/bin/pip
虚拟环境内部:sudo pip install django-haystack
在 virtualenv 内部:pip freeze - django-haystack 仍未列出。
在 virtualenv 之外:pip freeze - 列出了 django-haystack。
好奇是不是?
我正在使用 virtualenvwrapper(如果您无法从 pip 路径中分辨出来)
为什么 pip 在我的 virtualenv 之外安装它(以及我注意到的其他一些包)?
【问题讨论】:
-
您是否在 settings.py 的已安装应用程序中包含 django-haystack?
-
你确定你已经将 haystack 安装到 virtualenv 中了吗?安装前检查
which pip。 -
是的,是的。我在 installed_apps 中列出了 haystack,并且 django-haystack 正在安装到 virtualenv 中。
-
谢谢。你能显示你的设置吗?
-
Settings.py 粘贴在这里:pastebin.com/e6yj6z3V。另一件需要注意的事情是 haystack 通过 django-oscar 使用 get_core_apps 方法包含在 installed_apps 中。我也尝试过明确添加干草堆。
标签: python django virtualenv django-haystack virtualenvwrapper