Django 更新后,老代码跑不动的坑

最近重新开始写Django,发现以前的代码都启动不了。
开始执行./manage.py runserve后发现,import django 出错,但是在python 交互式命令行里不报错。

开始猜测是因为本地安装了多个版本的python ,然而 manage.py 里清楚地写着 #!/usr/bin/env python ,应该是3.6版本, 在runtime中执行了 print(sys.version_info[0] 结果也确实是3.6。
后来又重新装了django

pip uninstall django
pip install django

这下更新了django版本, 从2.0 -> 2.1 ,没效果
检查PYTHONPATH 环境变量, 发现为空,但是执行

import sys
for i in sys.path:
	print(i)

却得到了很多path.
于是改 ~/.bash_profile

export PYTHONPATH="/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages"
export PATH="$PATH:$PYTHONPATH"

终于导入django不报错了,然而出现了 另外一个错误

importError:dlopen(/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/_mysql.cpython-36m-darwin.so, 2): Library not loaded: /usr/local/opt/mysql/lib/libmysqlclient.20.dylib
Referenced from: /Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/_mysql.cpython-36m-darwin.so
Reason: image not found

估计是库没找到,在/usr/local/opt/mysql/lib/中只找到了 libmysqlclient.21.dylib
于是考虑是最近mysql做了更新,相应的驱动也要更新

pip install mysqlclient -U

可以成功运行了,估计是因为django做了更新之后,老代码都不兼容了

你可能感兴趣的:(Python,django)