为什么我不能“停用”pyenv / virtualenv?如何“修复”安装
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为什么我不能“停用”pyenv / virtualenv?如何“修复”安装相关的知识,希望对你有一定的参考价值。
我在新安装的Ubuntu 16.04上,为了使用最新版本的pandas进行开发,我使用虚拟环境安装了Python 3.6.0。
选择3.6.0的一个原因是因为我读到某个地方,这个版本的Python本身可以处理虚拟环境,即没有安装任何其他东西[无论如何安装3.6.0本身而不替换系统范围的Python,这几乎肯定是错了,我实际上不得不提供虚拟环境]。
我乐观地认为一切都会朝着正确的方向发展(包括我的知识),所以,不要过多关注:pyenv,pyenv-virtualenv,pyvenv等之间的差异...所以我不记得很清楚我安装了,无论如何我只使用
apt
和pip
/pip3
,试图限制virtualenv中的变化一旦它可用
我松散地跟着这个tutorial,除了(也许)我没有为virtualenvs($ mkdir ~/.virtualenvs
命令)创建一个目录。
现在我的用户被卡在(general)
环境中,我无法离开。
情况
从登录开始,没有激活任何环境,bash给我一个修改过的提示,似乎我无法得到deactivate
,source deactivate
等通常的提示...
(general) $ deactivate
pyenv-virtualenv: deactivate must be sourced. Run 'source deactivate' instead of 'deactivate'
(general) $ source deactivate
pyenv-virtualenv: deactivate 3.6.0/envs/general
(general) $ pyvenv deactivate
pyenv: pyvenv: command not found
The `pyvenv` command exists in these Python versions: 3.6.0
(general) $
您看到(general)
前缀仍保留在提示中。
我也有这个pyenv / virtualenv设置正在影响系统活动的症状(例如,当尝试从命令行安装hplip时,安装程序在尝试识别我的操作系统时感到困惑,最终失败了 - 我不得不从另一个用户那里做到这一点,然后它工作),所以我需要将其恢复到一个干净的状态。
NB。我不确定我的安装是否真的错了,也许只是我发出了错误的命令或者我遇到的一些常见陷阱。
问题
- 我怎么能
deactivate
(一般)环境 - 如何判断我的安装是否错误,以及如何修复它
- 我怎样才能安全地从这个安装中恢复并获得更合适的安装?
我已经读过这个question,但它与我的情况没有关系
This one似乎更相关,因为它突出了a)python venv
应该是首选; b)它可用于Python> = 3.3,c)ubuntu-xenial没有已经由deafult安装它,d)它给出了包名称来安装它。
但是我仍然不确定在安装之前要卸载什么以防万一。
更多信息
以下是TAB完成,命令和目录列表的输出,以显示我所处的环境:
(general) $ cat .py <TAB>
.pyenv/ .python_history
(general) $ cat .pyenv/ <TAB>
.agignore completions/ LICENSE shims/ versions/
bin/ CONDUCT.md Makefile src/ .vimrc
cache/ .git/ plugins/ test/
CHANGELOG.md .gitignore pyenv.d/ .travis.yml
COMMANDS.md libexec/ README.md version
(general) $ cat .pyenv/version
general
(general) $ ls -l ~/.pyenv/versions
totale 12
drwxrwxr-x 3 myuser myuser 4096 apr 20 13:50 ./
drwxrwxr-x 13 myuser myuser 4096 apr 20 13:50 ../
drwxr-xr-x 7 myuser myuser 4096 apr 20 13:50 3.6.0/
lrwxrwxrwx 1 myuser myuser 48 apr 20 13:50 general -> /home/myuser/.pyenv/versions/3.6.0/envs/general/
我尝试列出已安装的内容,但我担心使用pip3 list
,我得到的答案是我遇到的env,并且这是掩盖我在安装之前安装的任何内容。
可能只是我错误地从我的主目录安装了pyenv?是否足以删除/移动.pyenv
目录?没有问我,我没有足够的信心去做。
DEACTIVATE默认PyEnv General的方法是--pyenv uninstall 3.6.0 / envs / general
(general) dhankar@dhankar-VPCEB44EN:~/.pyenv$ pyenv uninstall 3.6.0/envs/general
pyenv-virtualenv: remove /home/dhankar/.pyenv/versions/3.6.0/envs/general? y
dhankar@dhankar-VPCEB44EN:~/.pyenv$
双重确保PyENV已被删除 -
dhankar@dhankar-VPCEB44EN:~/.pyenv$ pyenv versions
pyenv: version `general' is not installed (set by /home/dhankar/.pyenv/version)
system
3.6.0
3.6.5
dhankar@dhankar-VPCEB44EN:~/.pyenv$
还要记录它 - 在Un-Install之前共享同一命令的终端输出。
(general) dhankar@dhankar-VPCEB44EN:~/.pyenv$ pyenv versions
system
3.6.0
3.6.0/envs/general
3.6.5
* general (set by /home/dhankar/.pyenv/version)
(general) dhankar@dhankar-VPCEB44EN:~/.pyenv$
以上是关于为什么我不能“停用”pyenv / virtualenv?如何“修复”安装的主要内容,如果未能解决你的问题,请参考以下文章
pyenv local - 尽管已经安装了Python版本,但不能通过它的编号来设置该版本