Pycharm远程开发之全局pip,激活远程虚拟环境pip,以及pip的--user选项

前言

最近需要部署一下生成对抗网络的开发环境,我自己的笔记本没有带显卡,想到实验室的服务器有带显卡索性就用实验室服务器的环境开发,通过pycharm的远程开发功能连接到服务器,本来以为轻轻松松就可以开始写代码了,结果发现了一系列关于虚拟环境的pip下载包问题,总结如下:

  • Pycharm上本地pip安装包,使用本地pip,不会保存到linux服务器,没有使用与远程服务器保持一致的pip
  • Pycharm上手动安装包,由于连接了远程服务器pycharm自动使用pip保持一致,如下图所示,会同步到远程
  • 远程服务器上pip安装包(权限不允许),没有激活虚拟环境,全局pip下载,权限不允许,添加–user选项,依旧是本地与远程pip不一致
  • 远程服务器上pip安装包带–user选项,软件包下载在.local文件夹中
  • 远程服务器上使用虚拟环境的pip去安装包,全局pip覆盖了虚拟环境的pip,pip仍旧不一致
  • 远程环境上进入虚拟环境bin目录,使用对应虚拟环境的pip下载,成功将下载软件包同步到本地pycharm

连接步骤

Pycharm远程开发之全局pip,激活远程虚拟环境pip,以及pip的--user选项_第1张图片
Pycharm远程开发之全局pip,激活远程虚拟环境pip,以及pip的--user选项_第2张图片下载程序包通过pycharm手动安装,远程服务器同步更新软件包
Pycharm远程开发之全局pip,激活远程虚拟环境pip,以及pip的--user选项_第3张图片那么远程服务器下载的软件包,本地pycharm是否也是同步呢,首先激活远程服务器的虚拟环境。pip下载包没有同步到本地pycharm,这是什么原因呢。查看环境变量发现端倪,PATH环境变量中只有全局pip的路径,虚拟环境中的pip路径不存在,所以就算是激活了虚拟环境pip下载的软件包仍然是下载在全局环境,如果想要把软件包下载在当前用户目录下,使用pip的–user选线,该选项会在 /home/用户/ 目录下新建一个.local文件,所有pip --user下载的软件包都会保存在.local文件夹下。
PATH变量由于在使用pycharm远程连接服务器时,使用的是.virtualenv文件夹中的python解释器,所以只用使用.virtualenv中的pip.exe下载的软件包才会同步到pycharm中(使用.virtualenv中的pip.exe得使用绝对路径否则又会使用全局pip下载到全局环境中)
Python解释器

所以得出结论,pycharm远程连接使用的是哪个虚拟环境的python解释器就需要使用哪个虚拟环境的pip下载包,需要注意环境变量覆盖虚拟环境pip的问题。

你可能感兴趣的:(python,pycharm,pip,python)