Problem
已经在 Terminal 下执行:
$ pip install django-redis
在项目中引用from django_redis import get_redis_connection
。
但是在 PyCharm 中运行 Django,提示依赖包未安装错误:
ImportError: No module named redis_cache
但是,在 Termical 下执行:
$ python manage.py runserver
可以正常运行 Django。
Analysis
由于在默认情况下,通过 PyCharm 创建的项目会使用virtualenv来管理项目中使用到的依赖包。因此,如果直接在 Terminal 下执行:
$ pip install django-redis
Requirement already satisfied: django-redis in /Library/Python/2.7/site-packages (4.10.0)
Requirement already satisfied: redis>=2.10.0 in /Library/Python/2.7/site-packages (from django-redis) (3.3.11)
Requirement already satisfied: Django>=1.11 in /Library/Python/2.7/site-packages (from django-redis) (1.11.24)
Requirement already satisfied: pytz in /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python (from Django>=1.11->django-redis) (2013.7)
其实会将django-redis
安装到系统全局的 site-packages
的文件夹下。
而通过:
$ pip list
Package Version
------------ -------
Django 1.11.25
pip 19.2.3
PyMySQL 0.9.3
pytz 2019.2
setuptools 41.2.0
wheel 0.33.6
我们发现在这个项目的 venv环境中并没有安装django-redis
,这也解释了为什么直接在 Termical 下运行这个 Django没有依赖包找不到的问题,而通过 PyCharm 就有。
Solution
进到项目对应的文件夹下,执行:
$ source venv/bin/activate
在 venv 下安装这个依赖库:
$ pip install django-redis
此时,就可以在 PyCharm 下运行你的工程了。
FEATURED TAGS
algorithm
algorithmproblem
architecturalpattern
architecture
aws
c#
cachesystem
codis
compile
concurrentcontrol
database
dataformat
datastructure
debug
design
designpattern
distributedsystem
django
docker
domain
engineering
freebsd
git
golang
grafana
hackintosh
hadoop
hardware
hexo
http
hugo
ios
iot
java
javaee
javascript
kafka
kubernetes
linux
linuxcommand
linuxio
lock
macos
markdown
microservices
mysql
nas
network
networkprogramming
nginx
node.js
npm
oop
openwrt
operatingsystem
padavan
performance
programming
prometheus
protobuf
python
redis
router
security
shell
software testing
spring
sql
systemdesign
truenas
ubuntu
vmware
vpn
windows
wmware
wordpress
xml
zookeeper