windows cmd、powershell与pycharm共用虚拟环境venv的方法

有些小的脚本不想在pycharm执行,想直接在cmd或powershell运行,这时会遇到环境问题,pycharm中的虚拟环境一般都安装了比较多的包,而cmd或powershell默认环境并没有这些包,执行就会提示缺xx包,这时也可以pip install 随手安装需要的包来解决,但总不是个好办法,安装费时间不说,还占硬盘空间,能不能让cmd或powershell直接用pycharm的venv环境呢?

方法一:在cmd或powershell切换环境,把系统环境切换为pycharm的venv环境:

1、找到pycharm的venv环境:点击pycharm底部的Terminal标签,打开终端,运行

py -0p

会出现几个python.exe的路径,其中有一个前面有(环境名),最后标*的,就是当前使用的python及环境所在位置,一般应该是d:\xxxxx\venv\Scripts\python.exe

venv是你项目建立时起的虚拟环境的名字,自己对应就好,xxxx是项目保存路径。

这时可以在windows窗口中进入d:\xxxxx\venv\Scripts 这个文件夹,这就是当前项目python所在的路径,而上一级目录d:\xxxxx\venv就是当前项目虚拟环境venv的目录。

2、在cmd中切换成venv环境:win+r 输入cmd,打开cmd窗口,用cd命令进入上面的d:\xxxxx\venv\Scripts\  这个目录,然后输入activate.bat这个命令,回车就切换成venv环境了。偷懒操作:在windows中打开d:\xxxxx\venv\Scripts文件夹窗口,找到activate.bat这个文件,win+r 输入cmd,打开cmd窗口,然后把文件夹窗口中的activate.bat文件直接拖入cmd窗口,回车就切换环境了。

3、在windows powershell中切换环境:这个操作要注意一下powershell权限设置,在windows中打开d:\xxxxx\venv\Scripts文件夹窗口,然后在窗口空白处右键,选择“在终端中打开”(win11)或者shift+右键,选择“在终端中打开”(win11)或“在此处打开powershell窗口”(win10,win11)

然后输入get-executionpolicy  默认会返回Restricted,这表示powershell默认拒绝执行任何脚本,要改这个权限要先进入管理员模式,输入以下命令:

start-process PowerShell -verb runas

这样就会弹出一个蓝色的新powershell 窗口,这就是管理员权限窗口,然后运行

set-executionpolicy remotesigned

出来的选项选择y回车,这样就设置powershell可以执行脚本了。

然后回到之前d:\xxxxx\venv\Scripts位置的终端窗口,执行activate.ps1 或直接输入activate回车,就自动执行命令切换环境为venv了。然后可以pip list看一下包列表,是跟pycharm一样的。

方法二、终极解决:上面是你不同脚本用不同环境开发的情况,执行脚本也要切换不同环境,如果你跟我一样懒,一境走天下,所有项目都用一个环境那就没必要切来切去了,直接把pycharm虚拟环境设置为windows系统环境就好,这样只要打开cmd或powershell它就在venv,多方便

设置方法,右键点击“我的电脑”-属性,找到“高级系统设置”,点下面“环境变量”按钮,有上下两个框,在上面那个框“xxx的用户变量”中,找到Path,选中,点下面“编辑”,弹出框中点最上面“新建”,把虚拟环境的目录d:\xxxxx\venv 及python目录d:\xxxxx\venv\Scripts这两个路径添加到用户变量就行,下面系统变量不用管,反正一般windows也只是登录自己的帐户名。然后选中刚添加的路径,点左侧“上移”把它们移到最上面,或者别的python路径之上就行,这样只要打开cmd或powershell就是venv环境了,但这时候它前面不会显示(venv)这个环境名,运行脚本没问题。你可以pip list一下,看看包是不是venv环境的包

  • 8
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值