首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用PowerShell从单个命令中的任意目录激活环境?

如何使用PowerShell从单个命令中的任意目录激活环境?
EN

Stack Overflow用户
提问于 2022-06-05 12:19:04
回答 1查看 450关注 0票数 0

我想激活python3.8环境,而不必“cd”到windows 10中的环境路径。如果我使用像path/to/my/env/Scripts/activatepath/to/my/env/Scripts/activate.bat这样的命令,就不会激活我的环境。为了激活我的环境,我不得不使用两个命令-

  1. cd path\to\my\env\Scripts\
  2. ./activate
  3. cd back\to\my\project\dir

我不想每次都更改当前的项目工作目录,以激活windows 10 powershell中的环境。在Linux中,我可以使用一个source path/to/my/env/bin命令。它允许我留在当前的项目目录中,并使用它的路径地址激活环境。如何在windows 10中实现类似的功能,只需一个命令就可以激活python环境?

在上面的图片,我得到绿色的名称,我的环境一旦成功激活。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-06-05 22:30:42

在PowerShell上运行这样的代码:

代码语言:javascript
复制
C:\Users\Admin\Desktop\pyenv\Scripts\activate.bat

它有效,但没有你所期望的效果。从PowerShell运行批处理文件将启动一个新的cmd实例,该实例将获得激活的环境--但是,在批处理文件完成后,cmd过程将被完成并终止,并带着修改后的环境变量。

您可以编写这样的批处理文件,它将按预期工作(来自命令提示符和PowerShell):

代码语言:javascript
复制
call C:\Users\Admin\Desktop\pyenv\Scripts\activate.bat
python myscript.py

它将在预期的环境中运行myscript.py

从正在运行的命令提示符中只运行批处理文件激活命令(带有路径),您可能也期望在PowerShell中工作。它修改当前环境,并允许您随后在其中交互运行命令,直到您的deactivate

但是,如果要在当前PowerShell提示符上更改当前环境,则需要运行(--这是答案):

代码语言:javascript
复制
C:\Users\Admin\Desktop\pyenv\Scripts\activate.ps1

即运行.ps1 PowerShell脚本,不要运行.bat命令提示符脚本。

注意:如果输入了script.bat命令(并且没有其他扩展名在PATHEXT变量中的.bat之前),Windows将自动运行script;但是,PowerShell会找到script (无扩展名)文件,并为此进行处理。通过运行以下命令,可以看出情况是这样的:

代码语言:javascript
复制
Get-Command C:\Users\Admin\Desktop\pyenv\Scripts\activate

PowerShell也使用PATHEXT,但是匹配文件名之前没有扩展名,该文件就在那里(这是Bash脚本):

代码语言:javascript
复制
Write-Host $env:PATHEXT

(关于PowerShell在这里使用环境变量的更多信息)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72507248

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档