virtualenv简介
virtualenv用来创建独立的Python虚拟环境,可以将每个项目与其他项目独立开来,互不影响,解决了依赖包版本冲突的问题。
安装virtualenv
$ sudo apt-get install virtualenv
创建Python虚拟环境
利用 virtualenv [虚拟环境名称] 来创建虚拟Python环境,在虚拟环境里用pip安装的包都会安装到当前的虚拟环境中。
$ virtualenv env_python_xxx
如果系统里安装了不同的Python版本,可以使用--python来指定虚拟环境的python版本。
$ virtualenv --python /usr/bin/python3.7 env_python_xxx
virtualenv --python C:\Users\gaoxingting\AppData\Local\Programs\Python\Python38\python.exe env_python_3.8_viewer
启动和退出虚拟环境
启动虚拟环境:activate
[...]$ source env_python_xxx/bin/activate
(env_python_xxx)[...]$
退出虚拟环境:deactivate
(env_python_xxx)[...]$ deactivate
[...]$
注:解决window vscode中激活python虚拟环境报错
PS D:\work\codes\Viewer> & d:/work/codes/Viewer/env_python_3.8_viewer/Scripts/Activate.ps1
& : 无法加载文件 D:\work\codes\Viewer\env_python_3.8_viewer\Scripts\Activate.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅 https:/go.microsoft.com/fwlink/?LinkID=135170 中的 about_Execu
tion_Policies。
所在位置 行:1 字符: 3
+ & d:/work/codes/Viewer/env_python_3.8_viewer/Scripts/Activate.ps1
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : SecurityError: (:) [],PSSecurityException
+ FullyQualifiedErrorId : UnauthorizedAccess
解决方法:
1、使用 win + x ,选择以管理员身份运行PowerShell(注是管理员身份运行)
2、输入: set-executionpolicy remotesigned,接下来输入“y”表示执行。
再次打开vscode选着终端运行依旧会报错。报错内容如下
ModuleNotFoundError: No module named 'pymysql'
解决方式是在右下角重新打开一个虚拟环境,在终端选着运行,这样结果显示正常。
镜像站
清华:https://pypi.tuna.tsinghua.edu.cn/simple
阿里云:http://mirrors.aliyun.com/pypi/simple/
中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/
华中理工大学:http://pypi.hustunique.com/
山东理工大学:http://pypi.sdutlinux.org/
豆瓣:http://pypi.douban.com/simple/
使用virtualenvwrapper
virtualenvwrapper是virtualenv的扩展工具,可以方便的创建、删除、复制、切换不同的虚拟环境。
$ pip install virtualenvwrapper
virtualenvwrapper提供了如下命令来操作虚拟环境:创建虚拟环境:mkvirtualenv [虚拟环境名称]
列出虚拟环境:lsvirtualenv
切换虚拟环境:workon [虚拟环境名称]
查看当前环境安装了哪些包:lssitepackages
进入当前环境的目录:cdvirtualenv [子目录名]
进入当前环境的site-packages目录:cdsitepackages [子目录名]
控制当前环境是否使用global site-packages:toggleglobalsitepackages
复制虚拟环境:cpvirtualenv [source] [dest]
退出虚拟环境:deactivate
删除虚拟环境:rmvirtualenv [虚拟环境名称]