PyCharm Professional 2018.1无法检测已安装的Django相关应用
先明确下你的环境信息:
PyCharm版本:Professional 2018.1
Django版本:2.0
虚拟环境:pipenv
针对你碰到的两个问题——PyCharm识别不了虚拟环境里的第三方包,以及pipenv install把包装到根目录而非指定虚拟环境,我给你整理了具体的解决步骤:
一、PyCharm无法识别虚拟环境中的djangorestframework等包
你已经在默认设置里配置了解释器,但可能没同步到当前项目,或者PyCharm没正确扫描到包,试试这些操作:
检查项目专属的解释器设置
默认设置是全局配置,但当前项目可能没用上这个虚拟环境。操作路径:文件>项目结构>项目设置>项目,确认「项目SDK」是否选中了你用pipenv创建的虚拟环境。如果没选,手动找到虚拟环境的Python可执行文件(Linux/macOS一般在~/.local/share/virtualenvs/你的项目名-随机串/bin/python,Windows则在用户目录下的AppData\Local\virtualenvs路径中)。刷新PyCharm的包列表
打开「项目解释器」界面,点击右上角的圆圈箭头刷新按钮,等待PyCharm重新扫描虚拟环境内的包。如果还是没显示目标包,点击界面左下角的「显示全部」,排查是否不小心开启了包过滤。重新关联Pipenv环境
先在PyCharm内置终端激活虚拟环境:pipenv shell然后打开「项目解释器」,点击齿轮图标>「添加」>「Pipenv Environment」,选择你的项目根目录,让PyCharm自动关联已有的Pipenv环境,确认后重新加载解释器。
二、pipenv install将包安装到根目录而非虚拟环境
这个问题通常是终端未正确激活虚拟环境,或者PyCharm终端未与Pipenv绑定导致的:
先激活虚拟环境再执行安装
打开PyCharm内置终端,先执行命令进入虚拟环境:pipenv shell等终端提示符前出现虚拟环境名称前缀(比如
(myproject-xxxx)),再执行pipenv install package_name,包就会安装到项目对应的虚拟环境中。配置PyCharm终端默认进入Pipenv shell
进入「文件>设置>工具>终端」,修改「Shell path」:- Linux/macOS:
bash -c "pipenv shell" - Windows:
cmd /k "pipenv shell"
这样每次打开终端都会自动进入虚拟环境,直接执行安装命令就不会跑偏到根目录了。
- Linux/macOS:
确认终端工作目录为项目根目录
如果终端当前的工作目录不是项目根,Pipenv可能会创建新虚拟环境或使用全局环境,所以先通过cd命令切换到项目根目录,再执行安装操作。
做完这些操作后,重启PyCharm让所有设置生效,应该就能解决你的问题了。
内容的提问来源于stack exchange,提问作者Anuj TBE

