为什么我不能“停用”pyenv / virtualenv?如何“修复”安装

lur*_*x66 7 python ubuntu virtualenv pyenv

我在新安装的Ubuntu 16.04 上,鉴于使用最新版本的Pandas进行开发,我使用虚拟环境安装了Python 3.6.0

选择 3.6.0 的一个原因是因为我在某处读到这个版本的 Python 可以在本地处理虚拟环境,即无需安装任何其他东西 [无论如何安装 3.6.0 本身而不替换系统范围的 Python,这几乎可以肯定错了,我之前其实还得提供一个虚拟环境]。

我乐观地认为一切都会朝着正确的方向发展(包括我的知识),因此,不太关心以下之间的差异:pyenv、pyenv-virtualenv、pyvenv 等......所以我不太记得是什么我安装了,无论如何我只使用aptand pip/ pip3,试图在 virtualenv 可用后立即将其限制在

我松散地遵循了本教程,除了(可能)我没有为 virtualenvs ($ mkdir ~/.virtualenvs命令)创建目录。

现在我的用户被困在(general)环境中,我无法出去。

情况

从一登录后启动,而不激活任何environement,庆典给了我一个提示修改,似乎我不能用通常的提示deactivatesource 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) $ 
Run Code Online (Sandbox Code Playgroud)

您会看到(general)前缀保留在提示中。

我也有过这种 pyenv/virtualenv 设置正在影响系统活动的症状(例如,在尝试从命令行安装 hplip 时,安装程​​序在尝试识别我的操作系统时感到困惑,最终失败了 - 我不得不从另一个用户那里执行此操作,然后它起作用了),所以我需要将其恢复为干净的状态。

注意。我不确定我的安装是否真的有错,也许只是我发出了错误的命令或我遇到的一些常见陷阱。

问题

  • 我怎么能deactivate(一般)环境
  • 如何判断我的安装是否错误,以及如何修复
  • 我怎样才能安全地从此安装恢复并获得更合适的安装?

我已经阅读了这个问题,但它与我的情况并没有那么紧密

这个似乎更相关,因为它强调 a)python venv应该是首选;b) 它在 Python >=3.3 上可用,c) ubuntu-xenial 没有默认安装它,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/
Run Code Online (Sandbox Code Playgroud)

我尝试列出已安装的内容,但恐怕pip3 list我得到的答案是针对我卡住的环境,这掩盖了我在安装之前安装的任何内容。

可能只是我错误地从我的主目录安装了 pyenv ?删除/移动.pyenv目录就足够了吗?我没有足够的信心不问就去做。

Ham*_*med 9

当我使用此命令时它被停用:pyenv shell .


Roh*_*kar 1

编辑-[22/11/22]---> 下面的答案来自 2018 年 - 也许我从来没有停用过,只能设法卸载

停用默认 PyEnv General 的方法是 --pyenv uninstall 3.6.0/envs/general

pyenv-virtualenv: remove /home/dhankar/.pyenv/versions/3.6.0/envs/general? y
dhankar@dhankar-VPCEB44EN:~/.pyenv$
Run Code Online (Sandbox Code Playgroud)

双重确保 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$
Run Code Online (Sandbox Code Playgroud)

另外,以便其记录 - 在卸载之前共享同一命令的终端输出。

(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$ 
Run Code Online (Sandbox Code Playgroud)