如何离开/退出/停用 Python virtualenv

这篇具有很好参考价值的文章主要介绍了如何离开/退出/停用 Python virtualenv。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

问:

我正在使用 virtualenv 和 virtualenvwrapper。我可以使用 workon 命令在 virtualenv 之间切换。

me@mymachine:~$ workon env1
(env1)me@mymachine:~$ workon env2
(env2)me@mymachine:~$ workon env1
(env1)me@mymachine:~$ 

如何退出所有虚拟环境并再次在我的系统环境中工作?现在,我返回 me@mymachine:~$ 的唯一方法是退出 shell 并开始一个新的。这有点烦人。是否有一个命令可以处理“无”,如果有,它是什么?如果这样的命令不存在,我将如何创建它?

答1:

一个优秀的自由职业者,应该有对需求敏感和精准需求捕获的能力,而huntsbot.com提供了这个机会

通常,激活 virtualenv 会给你一个名为的 shell 函数:

$ deactivate

这使事情恢复正常。

我刚刚再次专门查看了 virtualenvwrapper 的代码,是的,它也支持 deactivate 作为从所有 virtualenvs 中逃脱的方式。

如果您尝试离开 Anaconda 环境,则该命令取决于您的 conda 版本。最近的版本(如 4.6)直接在您的 shell 中安装 conda 函数,在这种情况下您运行:

conda deactivate

较旧的 conda 版本改为使用独立脚本实现停用:

source deactivate

“停用”命令不是二进制文件,也不是您“来源”的脚本;它是一个 shell 别名,由“activate”脚本在您当前的 shell 中动态定义。

@Apreche 与此同时(大约四年后),这似乎是文档中的added。

如果将其称为“workoff”或“unworkon”会更直观。或者如果“workon”被称为“activate”。感谢上帝的别名。

@kkurian — 您应该建议在 virtualenvwrapper 的问题跟踪器上,也许 Doug Hellmann 会考虑它!请注意,对于以后可能会阅读这些评论的人,workon NOT 是原生 virtualenv 命令(这是原始问题的内容),而是 virtualenvwrapper 命令!

猜猜“workon”中实际的 virtualenv 命令叫什么? ...(剧透警告)... ...(剧透警告)... ...(剧透警告)... ...(剧透警告)...激活!

答2:

打造属于自己的副业,开启自由职业之旅,从huntsbot.com开始!

利用:

$ deactivate 

如果这不起作用,请尝试

$ source deactivate

任何知道 Bash source 工作原理的人都会认为这很奇怪,但是一些围绕 virtualenv 的包装器/工作流将它作为 source activate 的补充/对应物来实现。你的旅费可能会改变。

deactivate 是在您获取 activate 文件时创建的函数。您对 source deactivate 的建议完全没有意义,因为没有名为 deactivate 的文件

这不值得反对。请参阅所选响应的编辑:source deactivate 适用于 anaconda 环境。

由于不符合 SO 答案质量标准,它“值得”投反对票。与其说是答案,不如说是评论。但是,由于海报的79声誉,我们应该很好,并给予良好的反馈。

@Abdul 我在 stackoverflow.com/posts/29586756/revisions 的第 2 版中演示了如何提高您的答案质量

如果您的 shell 中没有停用命令,这将非常无用。我真的不明白为什么这会帮助解决问题。虚拟环境中没有停用脚本。

答3:

一个优秀的自由职业者,应该有对需求敏感和精准需求捕获的能力,而huntsbot.com提供了这个机会

我定义了一个 alias,workoff,作为 workon 的对立面:

alias workoff='deactivate'

很容易记住:

[bobstein@host ~]$ workon django_project
(django_project)[bobstein@host ~]$ workoff
[bobstein@host ~]$

在哪个文件中? .bashrc?

@seyed 是的,请参阅 this answer 以获取 ~/.bashrc 中的别名示例

我喜欢这个别名。让我想起了空手道小子(waxon;waxoff)

@C0deH4cker:我登录了 SO 并回到这个问题只是为了 +1 你的评论:p

答4:

huntsbot.com全球7大洲远程工作机会,探索不一样的工作方式

要激活 Python 虚拟环境:

$cd ~/python-venv/
$./bin/activate

要停用:

$deactivate

在 OS X10.11.1 的终端中,我似乎必须使用:$source activate

我不需要来源。我做了 $cd /to/dir/i/want/my/virtualenv/installed 然后 $virtualenv name_i_want_for_it 然后 $. name_i_want_for_it/bin/activate virtualenv 对我来说似乎还是有点不对劲。需要改进...

“来源”与“。”相同。 command.. 两者都可以用来获取文件

答5:

huntsbot.com聚合了超过10+全球外包任务平台的外包需求,寻找外包任务与机会变的简单与高效。

我发现在 Miniconda3 环境中我必须运行:

conda deactivate

deactivate 和 source deactivate 都不适合我。

deactivate 用于 virtualenv,而 source deactivate 用于 Linux 上的旧 conda。 conda deactivate 是 conda envs(不是 virtualenvs)的一种很好的跨平台方式

答6:

huntsbot.com聚合了超过10+全球外包任务平台的外包需求,寻找外包任务与机会变的简单与高效。

您可以使用 virtualenvwrapper 来简化使用 virtualenv 的方式。

安装 virtualenvwrapper:

pip install virtualenvwrapper

如果您使用的是标准外壳,请打开您的 ~/.bashrc 或 ~/.zshrc(如果您使用 Oh My Zsh)。添加这两行:

export WORKON_HOME=$HOME/.virtualenvs
source /usr/local/bin/virtualenvwrapper.sh

要激活现有的 virtualenv,请使用命令 workon:

$ workon myenv
(myenv)$

为了停用您的 virtualenv:

(myenv)$ deactivate

这里是my tutorial,一步一步介绍如何安装 virtualenv 和 virtualenvwrapper。

与内置的 virtualenv 相比,我看不出有什么不同

@NamGVU 注意 workon 命令,它适用于任何目录。

正如另一篇文章的评论中提到的(并且 Stackoverflow 没有实用的方法来指向它),如果没有首先获取定义此函数的脚本,您就不能在 shell 脚本中使用 deactivate (在这种情况下,您将拥有 找不到命令...错误)

答7:

与HuntsBot一起,探索全球自由职业机会–huntsbot.com

对于我的特殊情况,我转到工作目录

CD /myworkingdirectory

然后我像这样激活我的环境:

my-env/scripts/activate

从同一个工作文件夹(/myworkingdirectory)停用,我尝试了这个,但它什么也没做:

my-env/scripts/deactivate

这确实有效:

deactivate

答8:

huntsbot.com精选全球7大洲远程工作机会,涵盖各领域,帮助想要远程工作的数字游民们能更精准、更高效的找到对方。

使用 venv 的 activate 脚本提供的 deactivate 功能需要您相信停用函数已正确编码才能将所有环境变量干净地重置为之前的状态 - 不仅要考虑原始激活,以及您在此期间可能完成的任何开关、配置或其他工作。

这可能没问题,但它确实引入了一种新的、非零的风险,即事后修改您的环境。

但是,从技术上讲,进程无法直接更改其父进程的环境变量,因此我们可以使用单独的子 shell 来确保我们的 venv 不会留下任何残留物背后的变化:

激活:

$ bash --init-file PythonVenv/bin/activate

这会在 venv 周围启动一个新的 shell。您原来的 bash shell 保持不变。

要停用:

$ exit 或 [CTRL]+[D]

这会退出 venv 所在的整个 shell,并从激活脚本对环境进行任何更改之前返回到原始 shell。

例子:

[user@computer ~]$ echo $VIRTUAL_ENV
No virtualenv!

[user@computer ~]$ bash --init-file PythonVenv/bin/activate

(PythonVenv) [user@computer ~]$ echo $VIRTUAL_ENV
/home/user/PythonVenv

(PythonVenv) [user@computer ~]$ exit
exit

[user@computer ~]$ echo $VIRTUAL_ENV
No virtualenv!

答9:

huntsbot.com – 高效赚钱,自由工作

由于通过在 ~/bin 中查找此类命令的常规方法无法发现通过采购 ~/bin/activate 创建的 deactivate 函数,因此您可能希望创建一个仅执行函数 deactivate 的函数。

问题是一个名为 deactivate 的脚本包含一个命令 deactivate 如果在不在 venv 中时意外执行,将导致无限循环。一个常见的错误。

这可以通过仅在函数存在时执行 deactivate 来避免(即已通过采购 activate 创建)。

#!/bin/bash

declare -Ff deactivate  && deactivate

答10:

一个优秀的自由职业者,应该有对需求敏感和精准需求捕获的能力,而huntsbot.com提供了这个机会

运行 deactivate [name of your environment] 可以退出/停用您的 Python 环境。

python3.6 Windows 10 示例:

PS C:\Users\kyrlon\Desktop> py -m venv env1
PS C:\Users\kyrlon\Desktop> .\env1\Scripts\activate
(env1) PS C:\Users\kyrlon\Desktop> deactivate env1
PS C:\Users\klongwood3\Desktop> py -m venv env1

Linux Ubuntu 20.04 LTS 桌面上的 python3.9 示例:

kyrlon@pc1:~$ python3 -m venv venv1
kyrlon@pc1:~$ source venv1/bin/activate
(venv1) kyrlon@pc1:~$ deactivate venv1
kyrlon@pc1:~$

答11:

huntsbot.com聚合了超过10+全球外包任务平台的外包需求,寻找外包任务与机会变的简单与高效。

我使用基于 autoenv 的 zsh-autoenv。

zsh-autoenv 自动获取(已知/列入白名单) .autoenv.zsh 文件,通常用于项目根目录。它处理“进入”和“离开”事件、嵌套和变量的存储(覆盖和恢复)。

这是一个例子:

; cd dtree 
Switching to virtual environment: Development tree utiles
;dtree(feature/task24|); cat .autoenv.zsh       
# Autoenv.
echo -n "Switching to virtual environment: "
printf "\e[38;5;93m%s\e[0m\n" "Development tree utiles"
workon dtree
# eof
dtree(feature/task24|); cat .autoenv_leave.zsh 
deactivate

所以当我离开 dtree 目录时,虚拟环境会自动退出。

“Development tree utiles” 只是一个名字……这里没有任何与光明会相关的隐藏含义。

原文链接:https://www.huntsbot.com/qa/Dk0W/how-to-leave-exit-deactivate-a-python-virtualenv?lang=zh_CN&from=csdn

huntsbot.com提供全网独家一站式外包任务、远程工作、创意产品分享与订阅服务!文章来源地址https://www.toymoban.com/news/detail-498584.html

到了这里,关于如何离开/退出/停用 Python virtualenv的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • [Python系列] Python虚拟环境Virtualenv

            Python virtualenv 是一个用于创建和管理虚拟环境的工具。它可以帮助开发者在不同的项目中使用不同的 Python 版本和包,而不会相互干扰。使用 virtualenv,可以轻松地创建一个独立的 Python 环境,在其中安装所需的包和版本,而不会影响系统中已经安装的其他 Python 环

    2024年02月12日
    浏览(31)
  • python 之 virtualenv 虚拟环境

    最近需要使用virtualenv,查了下资料总结记录下。 virtualenv是Python的一个工具,用于创建独立的Python环境。它允许你在同一台计算机上同时管理多个独立的Python环境,每个环境都可以有自己的包依赖和Python版本。 在开发Python应用程序时,常常会遇到不同项目需要使用不同的包版

    2024年02月11日
    浏览(32)
  • python虚拟环境venv、virtualenv

    目录 原理 创建、删除虚拟环境 激活、退出、初始化虚拟环境 导出、导入虚拟环境 pycharm+虚拟环境 部署虚拟环境 pycharm目录下idea作用 pycharm目录下venv文件内容含义 虚拟环境是利用了操作系统中环境变量,以及进程间环境隔离的特性,python就是在激活虚拟环境的时候,激活脚

    2024年02月02日
    浏览(35)
  • mac python3 安装virtualenv

     第一步,执行安装virtualenv pip3 install virtualenv 注意:如果出现WARNING: The script virtualenv is installed in ‘/home/local/bin’ which is not on PATH. Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.  表示需要讲路径添加到path中。可根据提示执行 echo \\\'ex

    2024年02月16日
    浏览(27)
  • python的virtualenv虚拟环境无法激活activate

    目录 问题描述: 解决办法: 解决结果: PS D:pythonProjectpythonProjectDisplayToolLibsvenvScripts .activate .activate : 无法加载文件 D:pythonProjectpythonProjectDisplayToolLibsvenvScriptsactivate.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参 阅 https:/go.microsoft.com/fwlink/?LinkID=135170 中的

    2024年02月13日
    浏览(35)
  • Python虚拟环境(一):基于virtualenv+virtualenvwrapper创建python虚拟环境

    对于python开发者,虚拟环境是十分有必要的,它可以让每个项目甚至脚本配置一个自定义的python解释器环境,最大的好处就是各个环境相互隔离,没有影响。 通常我们 创建虚拟环境的方式主要有以下几种 : virtualenv + virtualenvwrapper创建 anaconda创建 Pipenv创建 Pycharm创建 pycharm创

    2024年02月10日
    浏览(35)
  • 【Python虚拟环境】virtualenv(virtualenvwrapper) 、pyenv、anaconda

    原文作者 :我辈理想 版权声明 :文章原创,转载时请务必加上原文超链接、作者信息和本声明。 Python给了我们无限可能,很多项目的python版本和相应的开发库都存在差异,大佬前辈们做了很多工具,方便了我们后来者。根据自己在各项目的python版本管理经验,做了一些整理

    2023年04月12日
    浏览(27)
  • 如何解决Vivado仿真时提示:另一个程序正在使用此文件 behavxsimsimulate.log

    Vivado仿真错误提示: 使用非Vivado自带的Text Editor(文本编辑器,如Vscode、Sublime等),在开始新的仿真时,前一次仿真没有关掉,导致log文件被一直占用。 方法一 关掉代码编辑器再进行仿真即可恢复正常 方法二 1、打开任务管理器(快捷键Ctrl + Shift + Esc) 2、点击性能 3、打开

    2024年02月12日
    浏览(29)
  • 【python】【centos】使用python杀死进程后自身也会退出

    使用python杀死进程后自身程序也会退出,无法执行后边的代码 这样不行: 使用shell脚本杀死进程,然后再让shell脚本运行该python程序 替代方案:

    2024年02月11日
    浏览(28)
  • Elasticsearch:是时候离开了! - 在 Elasticsearch 文档上使用 TTL

    作者:来自 Elastic David Pilato 想象一下,圣诞老人必须向世界上所有的孩子们分发礼物。 他有很多工作要做,他需要保持高效。 他有一份所有孩子的名单,并且知道他们住在哪里。 他很可能会将礼物按区域分组,然后再交付。 但他不会在同一个地方停留太久。 他会丢下礼物

    2024年01月21日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包