簡體   English   中英

為什么我不能“停用”pyenv / virtualenv? 如何“修復”安裝

[英]Why can't I "deactivate" pyenv / virtualenv? How to "fix" installation

我在新安裝的Ubuntu 16.04上,考慮到使用最新版本的pandas進行開發,我使用虛擬環境安裝了Python 3.6

選擇 3.6.0 的一個原因是因為我在某處讀到此版本的 Python 可以原生處理虛擬環境,即無需安裝任何其他東西[無論如何安裝 3.6.0 本身而不更換系統范圍的 Python,這幾乎可以肯定錯了,我之前實際上必須提供一個虛擬環境]。

我樂觀地認為 go 會朝着正確的方向發展(包括我的知識),所以,沒有太在意 pyenv、pyenv-virtualenv、pyvenv 等之間的區別……所以我不太記得是什么我安裝了,無論如何我只使用了aptpip / pip3 ,試圖在 virtualenv 可用時將更改限制在其中

除了(可能)我沒有為 virtualenvs 創建目錄( $ mkdir ~/.virtualenvs命令)之外,我松散地遵循了本教程

現在我的用戶被困在(general)環境中,我無法離開。

情況

從登錄后開始,沒有激活任何環境,bash 給了我一個修改過的提示,似乎我無法通過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) $ 

您會看到(general)前綴保留在提示中。

我也有這種 pyenv/virtualenv 設置影響系統活動的症狀(例如,在嘗試從命令行安裝 hplip 時,安裝程序在嘗試識別我的操作系統時感到困惑,最終失敗 - 我不得不從另一個用戶那里完成,然后它起作用了),所以我需要將其恢復為干凈的 state。

注意。 我不確定我的安裝是否真的那么錯誤,也許只是我發出了錯誤的命令或者我遇到了一些常見的陷阱。

問題

  • 如何deactivate (一般)環境
  • 如何判斷我的安裝是否錯誤,以及如何修復
  • 我怎樣才能安全地從此安裝恢復並獲得更合適的安裝?

我已經讀過這個問題,但它與我的情況並沒有太大關系

似乎更相關,因為它強調 a) python venv應該是首選; b) 它在 Python >=3.3 上可用,c) ubuntu-xenial 沒有默認安裝它,d) 它提供 package 名稱來安裝它。

但是我仍然不確定在安裝它們之前要卸載什么以防萬一。

更多信息

以下是 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我得到的答案是針對我被卡住的環境,這掩蓋了我在安裝之前安裝的任何內容。

可能只是我錯誤地從我的主目錄安裝了 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 shell <python_version>

示例: pyenv shell 3.10.5

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM