Python中搞不清楚PyCharm的虚拟机概念,求指教

已经折腾一整天了。还是没搞明白 pycharm 的虚拟机到底是怎么玩的。 现在有如下几个条件

  • 系统 python (版本 3.6 )没安装 django
  • virtualenv 生成的虚拟机 ENV(版本 3.6) 安装了 django
  • pycharm 社区版

我用 pycharm 建立项目的时候,project interpret 里面可有两个选择

  1. New environment using
  2. existing interpret

我选择选择 1,pycharm 会自动识别已经配置到环境变量里面的虚拟机。

生成的项目如下

├───.idea
└───venv
	├───Include
	├───Lib
	│   └───site-packages
	└───Scripts

我现在的疑问是,在 Lib 文件夹还有 Scripts 文件里面,都只能看到 python.exe,但是无法看到 pip,以及 Django.exe 。诡异的地方在于

  1. pychram 的 project interpret 可以看见 django 以及 pip。指向的都是 ENV 下的内容。
  2. 使用 pycharm 自带的 Terminal,输入命令 pip install django 的话,会在系统 python 目录下安装 django (同理,用 pip uninstall 的话,会提示你找不到 django )
  3. 在 terminal 中如果输入 python -m django --version 是可以得到 django 的版本的
  4. terminal 的内容行之前是带( ENV )的,也就是说现在是在虚拟机环境下

我很奇怪,pycharm 的虚拟机是一个完整的 python 虚拟环境么。还是说他只是把 python.exe 指向了 virtualenv 的 python,而其他的包依然用的是系统的 python 下的安装的包?


Python中搞不清楚PyCharm的虚拟机概念,求指教

3 回复

PyCharm里说的“虚拟机”通常指的是Python解释器运行的环境配置,不是像VMware那种系统级虚拟机。

主要分两种情况:

  1. 本地解释器:用你系统里装的Python(比如/usr/bin/python3C:\Python39\python.exe),PyCharm会直接调用它。

  2. 虚拟环境(Virtual Environment):这才是容易混淆的地方。PyCharm支持创建/使用venvconda等虚拟环境,它本质上是个隔离的Python安装目录,有自己独立的site-packages。PyCharm会把这个环境配置成项目专用的“Python解释器”。

关键点:在PyCharm设置里(Settings/Preferences -> Project: xxx -> Python Interpreter),你选的不管是系统Python还是venv,PyCharm都把它统称为“解释器”(有时文档里会叫它“Python SDK”)。这里所谓的“虚拟机”概念,其实就是指PyCharm为这个解释器配置的运行环境,包括环境变量、工作目录、路径映射等一堆运行时设置。

所以简单说:别纠结“虚拟机”这个词,在PyCharm里你就理解成 “Python解释器配置” 就行。你只需要关心当前项目选的是哪个Python(或虚拟环境),剩下的PyCharm会帮你处理好运行环境。

总结:PyCharm的“虚拟机”≈Python解释器+其运行配置。


虚拟环境是新的,只是用了基础的 Python 路径吧

那不叫虚拟机,就是个虚拟环境

回到顶部