背景描述
在使用pycharm远程调试项目时,明明已经指定了解释器(python interpreter)的路径了,为什么还是找不到module?
在import阶段就报错,项目无法启动。
说说原理
先说几点:
- 在Linux中,所有的可执行命令都是通过环境变量来找到可执行程序的。
- python的所有依赖包都是通过pip来安装的,如果不能正确的找到你要使用的pip路径,那么连你自己都不知道在运行哪个python解释器。
- 创建虚拟环境,本质上就是修改了python和pip的引用路径
- 环境变量PATH是一个列表,中间用:分割,查找顺序从前向后依次查找。
在知道了上述4点原理之后,我们来看看为什么没有找到,由于我们是使用virtualenv-wrapper和virtualenv来创建的虚拟环境,所以在你执行workon命令时,workon已经在你的PATH最前面(第一项)添加了一个路径,这个路径就是你的python虚拟环境的路径(venv/bin),这个bin目录中包含了你要使用的python解释器和pip包管理程序。
到此为止,初漏端倪。
怎么做
由于使用pycharm启动项目时,无法执行命令行(workon xxx),所以你需要自己在Evironment Variables里自己添加python虚拟环境的路径,到bin目录即可。
image.png
image.png
注意:
Name一栏填"PATH", Value一栏填"/home/python_env/report_service/bin/:PATH,因为如果没有这个后缀,之前的环境变量会被覆盖,导致你在服务器上配置的其他环境变量丢失。
网友评论