操作系统: Window 10
工具:Pycharm
Python: 3.7
Python 的虚拟环境有三个方案选择
virtualenv
conda
Pipenv 不要用 Pipenv -知乎劝退链接
conda
和 virtualenv
差不多,但我个人觉得比较好用的是 virtualenv
,这是一个虚拟环境文件夹,可以直接用来打包之类的,转移项目也方便很多。
Windows
命令行创建 Python 虚拟环境 virtualenv
的指令:
python -m venv 你的项目简称名/你创建的虚拟环境名
使用虚拟环境 virtualenv
的方法:
命令行 cd 虚拟环境\Scripts 目录
下,输入命令 activate
,就可以激活虚拟环境,接下来就不可以离开这里的 Scripts
目录了,不然后面你使用 pip
命令,或者 python
命令,都是本地的 python 环境的命令 ,而不是你创建的 virtualenv
虚拟环境的 python 环境,要特别注意这一点。
激活 virtualenv
虚拟环境
activate
退出 virtualenv
虚拟环境
deactivate
dir
命令是 Windows
操作系统的命令,类似 Linux
操作系统的 ls
命令
测试思路:在 virtualenv
虚拟环境的 Scripts
目录下, activate
激活虚拟环境,pip list
查看虚拟环境安装模块(包),结果为初始化环境所能拥有的模块(包) —— 很少,只有两个
在退出 virtualenv
虚拟环境,依旧是使用 virtualenv
虚拟环境的 pip
指令,回到目录的上一级,pip list
后就开始使用 本机的 python 环境内置的 pip
指令 —— pip list
,而不是使用 virtualenv 虚拟环境的 python 运行环境了 —— 简单讲,就是不是用 virtualenv 虚拟环境的 python 库了,而是本地环境的 python 库。
即使是激活了 virtualenv
虚拟环境,回到上一级目录,仍旧会使用本机 python 运行环境内的 pip
指令 —— pip list
在这里,别被 actiavte
指令迷惑了,在这种 bug 下,这个指令不会帮你将下来的各种虚拟环境内 python
指令,而是指向全局的 python 运行环境内的各种 python
指令。其实就是在说这个 activate
会误导人,想要用 virtualenv
虚拟环境内的 python 环境,那么就得到该 virtualenv
虚拟环境下的 Scripts
目录内,也就是命令终端 cd
到该 Scripts
目录,如果你去看过创建好的 virtualenv
虚拟环境文件 Scripts
目录内文件内容,就应该知道,那其实就是一个 python 的运行环境
解决该 bug 的链接:
python虚拟环境启动后依然使用全局pip的解决方法
说实话,这个方法链接,是有时灵有时不灵的,在 Windows 10 环境下,Virtualenv虚拟环境问题还是挺奇怪的,我比较倾向于使用Virtualenv虚拟环境安装所需要的各种包,然后用Pycharm 开发工具来使用虚拟环境内的python解释器,这样比较方便,要不然用 Pycharm自带的Flask框架很多问题,反正挺坑的,用Django的差不多,最好是自己手动弄一个虚拟环境出来,安装好框架模块,然后再用虚拟环境内的解释器,而不是直接用Pycharm自带的框架。
最好的办法是使用 anaconda3
来创建 python 虚拟环境,(anaconda3 是 virtualenv 的集成,里面的 envs 就是各种自己创建的 virtualenv ,还能切换 64 位 和 32 位的 python,只能说会玩的溜得飞起。)
Pycharm 更改python解释器的方法网上一大堆,一搜索就有。