我用以下命令创建了一个环境:virtualenv venv --distribute。
我不能用以下命令删除它:rmvirtualenv venv。-这是virtualenvwrapper的一部分,如下面针对virtualenvwrapper的回答中所述。
我在我当前的目录上做了一个ls,我仍然能看到venv
我唯一能移除它的方法似乎是:sudo rm -rf venv
请注意,环境不是活动的。我在运行Ubuntu 11.10。有什么想法吗?我试图重新启动系统,但没有成功。
如果不使用sudo,您的问题是什么?你为什么认为重启会有帮助?
只需删除目录。
喇叭:sudo rmvirtualenv venv不是有效的命令。不知道为什么我认为重启会有帮助。老实说,我是新来的。
注意,rmvirtualenv附带了virtualenvwrapper。你需要安装它才能工作。
请注意,您也可以删除当前安装的所有包,但如果安装了virtualenvwrapper:$ virtualenv --clear path_to_my_venv,则保留虚拟环境本身。我不时地使用它来确保没有任何手动安装的内容,比如在requirements.txt中不再有旧的依赖项。
在正常情况下,不需要sudo。虚拟环境的关键是,您可以使用常规用户帐户来操作它。
就是这样!没有删除虚拟环境的命令。只需停用它并通过递归地删除它来消除应用程序中的工件。
请注意,无论您使用的是哪种虚拟环境,这都是相同的。virtualenv、venv、Python环境、pyenv、pipenv都是基于相同的原理。
值得注意的是,如果您使用PIP来安装依赖项,那么您可能希望PIP冻结依赖项列表并将其保存在顶级目录中。如果您以后选择部署您的应用程序,就不会有什么麻烦了。
当正确的答案仅仅是下面的时候,为什么这被接受并且有这么多的选票?也许这是针对旧版本的virtualenvwarpper
@jsbueno他使用的是virtualenv,而不是virtualenwrapper(它们不是同一个程序)。当时,virtualenv没有提供用于清理的接口;您必须自己进行清理。
如果您在git repo中创建了一个virtualenv(并且文件不会被忽略):git clean -dffx。
正如@skytrader之前所评论的,rmvirtualenv是virtualenvwrapper提供的命令,而不是virtualenv。也许你没有安装virtualenvwrapper?
有关详细信息,请参阅virtualenvwrapper命令参考。
使用rmvirtualenv。
在$WORKON_HOME中移除环境。
Syntax:
rmvirtualenv ENVNAME
删除当前环境之前必须使用"停用"。
$ rmvirtualenv my_env
参考:http://virtualenvwrapper.readthedocs.io/en/latest/command_ref.html
你的回答越来越简单。哈哈
甚至还有tab完成支持!
请注意,这个答案是错误的,因为OP从未说过他们有virtualenvwrapper。
通过递归地卸载所有依赖项,然后删除venv,可以删除所有依赖项。
编辑包括艾萨克·特纳评论
source venv/bin/activate
pip freeze > requirements.txt
pip uninstall -r requirements.txt -y
deactivate
rm -r venv/
我想你在rm -r venv/之前丢失了一个deactivate。
关键的是,只有当您不共享系统的pip时才这样做!(否则,您将卸载所有系统包。)
实际上,如果您要通过rm的方式移除所有包,则不需要单独使用pip uninstall。跳过这个步骤可以避免前面评论中指出的风险。
来自virtualenv的官方文档https://virtualenv.pypa.io/en/stable/userguide/
Removing an Environment
Removing a virtual environment is simply done by deactivating it and deleting the environment folder with all its contents:
(ENV)$ deactivate
$ rm -r /path/to/ENV
具有管理员权限
@不,您不应该需要sudo或类似的特权,除非您首先也使用它们来设置环境,这通常是一个错误。
只需从系统中删除虚拟环境,没有针对它的特殊命令
rm -rf venv
我用pyenv uninstall my_virt_env_name删除了病毒环境。
注意:我正在使用通过安装脚本安装的pyenv virtualenv。
这显然只有在使用pyenv时才有效。
如果使用pyenv,则可以删除虚拟环境:
$ pyenv virtualenv-delete
以下命令对我有效。
rm -rf /path/to/virtualenv
如果您是Windows用户,则它位于C:user syouruserameenvs中。你可以从那里删除它。
也可以在命令提示符rmvirtualenv environment name中尝试。
我尝试使用命令提示,所以它说"删除",但它仍然存在。所以我手动删除它。
事实上这不是真的。虚拟环境的位置实际上取决于执行virtualenv命令的位置。例如:C:\>virtualenv my_awesome_venv将在C:\my_awesome_venv中创建虚拟环境。
我说的是虚拟包装。我的错误
你说得对,我也有同样的问题
如果您是Windows用户,并且正在Anaconda提示符下使用Conda管理环境,则可以执行以下操作:
请确保停用虚拟环境或重新启动"Python"提示。使用以下命令删除虚拟环境:
$ conda env remove --name $MyEnvironmentName
或者,您可以转到c:usersusernameappdatalocalcontinuumanaconda3envsmyenvironmentname(这是默认文件路径),然后手动删除文件夹。
你要找的是deactivate命令。正如已经说过的,没有删除虚拟环境的命令。只需停用它!
这不能回答问题。你是对的,你通常不需要破坏你的virtualenv,但这就是OP想要问的。
步骤1:通过复制并粘贴以下命令删除virtualenv virtualenwrapper:
$ sudo pip uninstall virtualenv virtualenvwrapper
步骤2:转到.bashrc并删除所有virtualenv和virtualenvwrapper
开放终端:
$ sudo nano .bashrc
向下滚动,您将看到下面的代码,然后将其删除。
# virtualenv and virtualenvwrapper
export WORKON_HOME=$HOME/.virtualenvs
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
source /usr/local/bin/virtualenvwrapper.sh
接下来,找到.bashrc:
$ source ~/.bashrc
最后一步:如果没有终端/外壳,去/回家找到.virtualenv(我忘记了名字,所以如果你的发现与.virtualenv或.venv相似,就删除它。那行得通。
这似乎回答了一个完全不同的问题,而且应该有一个巨大的警告。其中一些建议也很糟糕(再次向你的.bashrc寻求帮助,可能会产生不受欢迎的后果)。
所以,我做了一点谷歌,但没有一个答案是令人满意的。
但意外的是,在浏览pip(安装支持python的软件包的实用程序virtualenv就是其中之一)的手册页时,它被记录为对pip使用"uninstall"关键字,下面是直接从我的终端输出的确切结果。
indresh-VBX] **$ sudo pip uninstall virtualenv**
目录'/home/indresh/.cache/pip/http'或其父目录不属于当前用户,缓存已被禁用。请检查该目录的权限和所有者。如果使用sudo执行pip,则可能需要sudo的-h标志。
Uninstalling virtualenv-15.1.0:
/usr/bin/virtualenv
/usr/local/bin/virtualenv
/usr/local/lib/python2.7/dist-packages/virtualenv-15.1.0.dist-info/DESCRIPTION.rst
/usr/local/lib/python2.7/dist-packages/virtualenv-15.1.0.dist-info/INSTALLER
/usr/local/lib/python2.7/dist-packages/virtualenv-15.1.0.dist-info/METADATA
/usr/local/lib/python2.7/dist-packages/virtualenv-15.1.0.dist-info/RECORD
/usr/local/lib/python2.7/dist-packages/virtualenv-15.1.0.dist-info/WHEEL
/usr/local/lib/python2.7/dist-packages/virtualenv-15.1.0.dist-info/entry_points.txt
/usr/local/lib/python2.7/dist-packages/virtualenv-15.1.0.dist-info/metadata.json
/usr/local/lib/python2.7/dist-packages/virtualenv-15.1.0.dist-info/top_level.txt
/usr/local/lib/python2.7/dist-packages/virtualenv.py
/usr/local/lib/python2.7/dist-packages/virtualenv.pyc
/usr/local/lib/python2.7/dist-packages/[email protected]_support/__init__.py
/usr/local/lib/python2.7/dist-packages/virtualenv_support/__init__.pyc
/usr/local/lib/python2.7/dist-packages/virtualenv_support/argparse-1.4.0-py2.py3-none-any.whl
/usr/local/lib/python2.7/dist-packages/virtualenv_support/pip-9.0.1-py2.py3-none-any.whl
/usr/local/lib/python2.7/dist-packages/virtualenv_support/setuptools-28.8.0-py2.py3-none-any.whl
/usr/local/lib/python2.7/dist-packages/virtualenv_support/wheel-0.29.0-py2.py3-none-any.whl
Proceed (y/n)? y
Successfully uninstalled virtualenv-15.1.0
The directory '/home/indresh/.cache/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
--------------------------------
操作的问题是如何删除virtualenv,而不是如何卸载virtualenv包。