Table of Contents

Python虚拟环境

使用virtualenv


安装多版本Python

Python可以安装多个版本,但是系统会有一个默认的版本(根据环境变量的设定)。创建虚拟环境需要哪个版本的Python就需要提前安装,最好知道安装的位置,就是Python解释器主程序所在的位置。

首先virtualenv是一个包,需要通过pip安装好,安装之后是可执行程序。

xxx/python.exe -m pip install virtualenv
  1. virtualenv是包的名字(安装的时候使用)
  2. venv是命令的名字(执行命令的时候使用,xxx/python.exe -m venv)

virtualenv一个虚拟环境就是一个目录,激活的时候就进到目录中激活,退出的时候就进到目录中退出(虚拟环境),删除环境就是删除目录即可,完全和外界隔开,非常干净。

语法

创建

需要virtualenv在系统的PATH中,默认是不会加的

virtualenv -p path_to_python --no-site-packages ENV_NAME

或者

python(3) -m venv -p path_to_python --no-site-packages ENV_NAME

在当前目录创建了一个目录(和环境同名),用于存放虚拟环境的数据,–no-site-packages表示不继承默认环境的包。只有ENV_NAME是必须提供的参数。

切换

每一个虚拟环境都会提供一个activate文件,Windows上是activate.bat,Linux上是activate。文件位置可能是/EnvDir/Scripts或者/EnvDir/bin

Windows:
执行activate.bat

Linux:
source activate

MacOS(和Linux一样):
source <desired-path>/bin/activate

退出

Windows:
进入(环境目录下的)Scripts目录下后 执行deactivate.bat

Linux:
重开一个窗口

*安装位置一般类似/usr/local/lib/pythonx.x/dist-packages

Tips

Debain、Ubuntu上如果默认没有安装pip的话,执行

sudo apt-get install python3-pip

通过pip安装virtualenv之后,可能还是不能用,执行

sudo apt-get install python3-venv

安装软件包

在配置好虚拟环境后,就可以在虚拟环境里面安装我们需要的包了

python -m pip install PyYAML -i https://pypi.douban.com/simple

在编辑器中选择虚拟环境

以下使用VS Code举例(记得先把Restricted Mode关了)

如果没有选择正确的环境,编辑器可能会识别不出来某些库,导致代码中出现很多波浪线,还会影响到代码补全

在VS Code里面,打开一个py文件后,选择右下角的Python版本号,比如默认是“3.12.6”,这就是使用的默认的python环境,点击这个版本号,选择python解释器的位置,定位到:虚拟环境文件夹/bin/,选择二进制文件,windows上应该可以选择python.exe(未验证),MacOS上会看到python3或者python3.12这样的快捷方式,自己尝试了以下,选择这些都没用,选择pip3.12(二进制文件,非快捷方式)就可以了

直接选择vscode推荐的这一个最靠谱:

【2024-12-10更新】:选择什么都不生效,我觉得应该是bug…打算换成PyCharm…(Mac上venv创建的 /bin/python 是一个快捷方式,我觉得问题出在这里)

【2024-12-10更新】:换一种方式解决:打开VS Code的Settings,搜索Python,修改下面这个选项的Value

然后再选虚拟环境的时候,就不用到Finder中去选择了,直接在列表中选,这样好像就能正确识别到