使用virtualenv
Python可以安装多个版本,但是系统会有一个默认的版本(根据环境变量的设定)。创建虚拟环境需要哪个版本的Python就需要提前安装,最好知道安装的位置,就是Python解释器主程序所在的位置。
首先virtualenv是一个包,需要通过pip安装好,安装之后是可执行程序。
xxx/python.exe -m pip install virtualenv
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
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中去选择了,直接在列表中选,这样好像就能正确识别到