如何解决vscode下powershell终端进入python虚拟环境venv问题

 更新时间:2024年05月09日 09:38:17   作者:新潮技术研究社  
这篇文章主要介绍了如何解决vscode下powershell终端进入python虚拟环境venv问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
(福利推荐:【腾讯云】服务器最新限时优惠活动,云服务器1核2G仅99元/年、2核4G仅768元/3年,立即抢购>>>:9i0i.cn/qcloud

(福利推荐:你还在原价购买阿里云服务器?现在阿里云0.8折限时抢购活动来啦!4核8G企业云服务器仅2998元/3年,立即抢购>>>:9i0i.cn/aliyun

vscode下powershell终端进入python虚拟环境venv

vscode在python程序目录下执行终端命令venv创建python虚拟环境,也就是将python的工作环境打包到当前目录下。

> python -m venv venv

接着我们就可以看到自动生成了一个venv的目录,里面其实就是python的各种执行程序。

然后我们要在终端下进入这个venv的环境,之后使用pip安装的各种模块都会放在这个目录下,而不是本机python的安装目录。

这样的好处就是,之后pyinstaller生成exe方便,不会造成系统中的模块太多,占地大。

如果你设置了终端是cmd.exe,那么接着我们执行activate.bat

如果你设置的是pwsh.exe,即powershell,那么我们要执行的是Activate.ps1

  • 第一种情况好说,直接执行后就可以了。
  • 第二种情况,就需要先给powershell设置执行脚本的权限。

在终端下执行以下命令:

> pwsh.exe -ExecutionPolicy AllSigned

出现了这样的选择提示:可以选R和A,我选A了。

接着,就可以进入venv的子终端环境中了,前面加了个(venv )。

(venv) PS F:\PyCharmProject\togatest> 

现在,再使用pip install xxxx,安装的模块包就会安装在当前目录下了。

python虚拟环境venv的日常使用

虚拟环境venv介绍

官方文档

官方介绍:

venv 模块支持使用自己的站点目录创建轻量级“虚拟环境”,可选择与系统站点目录隔离。

每个虚拟环境都有自己的 Python 二进制文件(与用于创建此环境的二进制文件的版本相匹配),并且可以在其站点目录中拥有自己独立的已安装 Python 软件包集。

个人需求、理解和使用场景:

  • 在同一台机器上运行的python项目文件需要不同的特定python版本,比如python2项目和python3项目
  • 在编写一些项目时,避免其他项目的模块或者配置的干扰,独立出一个单独的python环境(相当于在一台纯净的机器上重新安装了python一样)
  • 防止莫名的报错!(个人体会最深,因为刚开始用python时明明都用的好好的,但是在同一个解释器环境下安装的模块多了,就容易报一些莫名其妙的错误,而且代码并没有错误,很大原因就是模块引用之间的冲突,例如我之前在用多线程时,经常报错 json 模块没有 loads 方法,后来才知道是环境问题)

基本使用方法

创建虚拟环境

linux环境:

python3 -m venv /path/to/new/virtual/environment

运行此命令将创建目标目录(父目录若不存在也将创建),并放置一个 pyvenv.cfg 文件在其中,文件中有一个 home 键,它的值指向运行此命令的 Python 安装(目标目录的常用名称是 .venv)。

它还会创建一个 bin 子目录(在 Windows 上是 Scripts),其中包含 Python 二进制文件的副本或符号链接(视创建环境时使用的平台或参数而定)。

它还会创建一个(初始为空的) lib/pythonX.Y/site-packages 子目录(在 Windows 上是 Lib\site-packages)。

如果指定了一个现有的目录,这个目录就将被重新使用。

win环境:

python -m venv \path\to\myenv

激活进入虚拟环境

  • 进入到对应项目目录下的:\venv\Scripts
  • 然后打开命令行输入

activate

  • 然后在命令行的盘符前面就可以看到多了 (venv) 字符,代表成功激活虚拟环境

虚拟环境是一个 Python 环境,安装到其中的 Python 解释器、库和脚本与其他虚拟环境中的内容是隔离的,且(默认)与“系统级” Python(操作系统的一部分)中安装的库是隔离的。

虚拟环境是一个目录树,其中包含 Python 可执行文件和其他文件,其他文件指示了这是一个是虚拟环境。

常用安装工具如 setuptools 和 pip 可以在虚拟环境中按预期工作。换句话说,当虚拟环境被激活,它们就会将 Python 软件包安装到虚拟环境中,无需明确指示。

当虚拟环境被激活(即虚拟环境的 Python 解释器正在运行),属性 sys.prefix 和 sys.exec_prefix 指向的是虚拟环境的基础目录,而 sys.base_prefix 和 sys.base_exec_prefix 指向非虚拟环境的 Python 安装,即曾用于创建虚拟环境的那个 Python 安装。如果虚拟环境没有被激活,则 sys.prefix 与 sys.base_prefix 相同,且 sys.exec_prefix 与 sys.base_exec_prefix 相同(它们均指向非虚拟环境的 Python 安装)。

当虚拟环境被激活,所有 distutils 配置文件中更改安装路径的选项都会被忽略,以防止无意中将项目安装在虚拟环境之外。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持程序员之家。

相关文章

  • Python中sys.argv用法图文详解

    Python中sys.argv用法图文详解

    很多刚刚接触python的人来说,对于python中sys.argv[]往往不是很明白,下面这篇文章主要给大家介绍了关于Python中sys.argv用法的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-12-12
  • Python获取本机所有网卡ip,掩码和广播地址实例代码

    Python获取本机所有网卡ip,掩码和广播地址实例代码

    这篇文章主要介绍了Python获取本机所有网卡ip,掩码和广播地址实例代码,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下
    2018-01-01
  • 详解LyScript 内存扫描与查壳实现

    详解LyScript 内存扫描与查壳实现

    这篇文章主要为大家介绍了详解LyScript 内存扫描与查壳实现详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-09-09
  • python图形用户接口实例详解

    python图形用户接口实例详解

    这篇文章主要为大家详细介绍了python图形用户接口实例,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-12-12
  • python错误:AttributeError: ''module'' object has no attribute ''setdefaultencoding''问题的解决方法

    python错误:AttributeError: ''module'' object has no attribute

    这篇文章主要介绍了python错误:AttributeError: 'module' object has no attribute 'setdefaultencoding'问题的解决方法,需要的朋友可以参考下
    2014-08-08
  • Python中的闭包详细介绍和实例

    Python中的闭包详细介绍和实例

    这篇文章主要介绍了Python中的闭包详细介绍和实例,本文先是详细讲解了闭包的相关知识,然后给出了python中闭包例子、lamada例子,需要的朋友可以参考下
    2014-11-11
  • Python创建普通菜单示例【基于win32ui模块】

    Python创建普通菜单示例【基于win32ui模块】

    这篇文章主要介绍了Python创建普通菜单,结合实例形式分析了Python基于win32ui模块创建普通菜单及添加菜单项的相关操作技巧,并附带说明了win32ui模块的安装命令,需要的朋友可以参考下
    2018-05-05
  • python中sys.argv函数精简概括

    python中sys.argv函数精简概括

    本篇文章给大家分享了关于python中sys.argv函数的相关知识点,有兴趣的朋友可以参考学习下。
    2018-07-07
  • 使用python编写android截屏脚本双击运行即可

    使用python编写android截屏脚本双击运行即可

    使用python编写一个截屏的脚本,双击运行脚本就OK,截屏成功后会将截屏文件已当前时间命名,并保存在存放脚本的当前路径的screenshot文件夹下
    2014-07-07
  • 使用scrapy实现爬网站例子和实现网络爬虫(蜘蛛)的步骤

    使用scrapy实现爬网站例子和实现网络爬虫(蜘蛛)的步骤

    本文分二个示例,第一个是个简单的爬网站的小例子,第二个例子实现目是从一个网站的列表页抓取文章列表,然后存入数据库中,数据库包括文章标题、链接、时间,大家参考使用吧
    2014-01-01

最新评论

?


http://www.vxiaotou.com