Homebrew 升级到 python3 导致的 virtualenv 问题 解决方案
由 imonyse 在 2019-03-07 发布,2020-01-16更新
标签: coder python
基于大环境下,python3的项目越来越多,很多项目的最新版本也开始支持python3,所以上周决定把自己的开发环境迁移到python3。用 brew 安装完了之后,用起来感觉良好,就没想那么多。
然而,这周要维护一下原先给公司开发的几个django项目,就发觉出问题了。
然而,这周要维护一下原先给公司开发的几个django项目,就发觉出问题了。
dyld: Library not loaded: @executable_path/../.Python Referenced from: .env/bin/python Reason: image not found [1] 82133 abort ./manage.py
这个项目的virtualenv 是用的旧版python2.7创建的,brew升级之后,原先Python软链接到的python不存在了,自然会报错。
用brew重新安装python2.7,并且重新安装2.7版的virtualenv之后,发觉还是不行。原因是python2.7的小版本号不一样,所以旧的python还是没有装回来。
那么,现在需要把env里面失效的软链接重新创建一下。先用 find 命令,找到并且删除env里面所有的软链接文件
用brew重新安装python2.7,并且重新安装2.7版的virtualenv之后,发觉还是不行。原因是python2.7的小版本号不一样,所以旧的python还是没有装回来。
那么,现在需要把env里面失效的软链接重新创建一下。先用 find 命令,找到并且删除env里面所有的软链接文件
find .env -type l -delete
然后用virtualenv命令重写一下env文件夹
virtualenv .env
这个会重新创建软链接文件,改写与之相关的部分文件,却不会导致旧env里安装过的pip包消失。成功之后,旧的django就能愉快的运行了。