Pertanyaan Bagaimana cara meninggalkan / keluar / menonaktifkan virtualenv python?


Saya menggunakan virtualenv dan virtualenvwrapper. Saya dapat beralih antara virtualenv dengan menggunakan perintah workon.

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

Namun, bagaimana cara saya keluar dari semua mesin virtual dan bekerja di mesin saya yang sebenarnya lagi? Saat ini, satu-satunya cara saya mendapatkan kembali

me@mymachine:~$ 

adalah keluar dari shell dan memulai yang baru. Itu agak menyebalkan. Apakah ada perintah untuk bekerja "tidak ada apa-apa", dan jika ya, apa itu? Jika tidak ada perintah seperti itu, bagaimana cara saya membuatnya?


1067
2018-06-13 14:15


asal


Jawaban:


Biasanya, mengaktifkan virtualenv memberi Anda fungsi shell bernama:

$ deactivate

yang membuat semuanya kembali normal.

Edit 1

Saya baru saja melihat secara khusus lagi pada kode untuk virtualenvwrapper, dan, ya, itu juga mendukung deactivate sebagai cara untuk melarikan diri dari semua virtualenvs.

Edit 2

Jika Anda mencoba untuk meninggalkan Anaconda lingkungan, prosedurnya sedikit berbeda: jalankan perintah dua kata source deactivate karena mereka menerapkan penonaktifan menggunakan skrip yang berdiri sendiri.

bash-4.3$ deactivate
pyenv-virtualenv: deactivate must be sourced. Run 'source deactivate' instead of 'deactivate'
bash-4.3$ source deactivate
pyenv-virtualenv: no virtualenv has been activated.

1758
2018-06-13 14:31



Saya mendefinisikan sebuah alias  bekerja keras sebagai kebalikan dari workon:

alias workoff='deactivate'

Mudah diingat:

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

32
2018-01-14 16:23



$ deactivate 

Jika ini tidak berhasil, cobalah

$ source deactivate

Siapa pun yang tahu caranya pesta source Bekerja akan berpikir itu aneh, tetapi beberapa wrappers / alur kerja di sekitar virtualenv mengimplementasikan sebagai pujian / mitra source activate. YMMV


21
2018-04-12 06:41



untuk mengaktifkan lingkungan virtual python:

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

untuk menonaktifkan:

$deactivate

10
2017-11-26 07:06



Kamu dapat memakai virtualenvwrapper untuk memudahkan cara Anda bekerja virtualenv

Menginstal virtualenvwrapper

pip install virtualenvwrapper

Jika Anda menggunakan shell standar, buka ~/.bashrc atau ~/.zshrc jika Anda menggunakan oh-my-zsh. Tambahkan dua baris ini:

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

Untuk mengaktifkan virtualenv yang ada, gunakan perintah kerja:

$ workon myenv
(myenv)$

Untuk menonaktifkan virtualenv Anda:

(myenv)$ deactivate

Ini aku tutorial, langkah demi langkah dalam cara menginstal virtualenv dan virtualenvwrapper


1
2017-09-01 05:13



saya menggunakan zsh-autoenv yang didasarkan off autoenv.

zsh-autoenv secara otomatis   sumber (dikenal / masuk daftar putih) .autoenv.zsh file, biasanya digunakan dalam   direktori akar proyek. Ini menangani "masuk" dan meninggalkan "acara,   bersarang, dan menyimpan variabel (menimpa dan memulihkan).

Berikut ini contohnya:

; 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

Jadi ketika saya meninggalkan dtree direktori, lingkungan virtual secara otomatis keluar.


0
2018-02-14 10:50



(my_env) basant @ basant: ~ / EonTraining / my_env $ menonaktifkan

gunakan 'nonaktifkan'

basant @ basant-Lenovo-E40-80: ~ / EonTraining / my_env $

Hilang (my_env);


0
2017-09-03 06:43



Punya masalah yang sama diri saya saat mengerjakan script installer, saya lihat apa adanya bin / activate_this.py lakukan dan membaliknya.

Contoh:

#! /usr/bin/python
# -*- coding: utf-8 -*-
import os
import sys

# path to virtualenv
venv_path = os.path.join('/home', 'sixdays', '.virtualenvs', 'test32')

# Save old values
old_os_path = os.environ['PATH']
old_sys_path = list(sys.path)
old_sys_prefix = sys.prefix


def deactivate():
    # Change back by setting values to starting values
    os.environ['PATH'] = old_os_path
    sys.prefix = old_sys_prefix
    sys.path[:0] = old_sys_path


# Activate the virtualenvironment
activate_this = os.path.join(venv_path, 'bin/activate_this.py')
execfile(activate_this, dict(__file__=activate_this))


# Print list of pip packages for virtualenv for example purpose
import pip
print str(pip.get_installed_distributions())
# Unload pip module
del pip

# deactive/switch back to initial interpreter
deactivate()

# print list of initial environment pip packages for example purpose
import pip
print str(pip.get_installed_distributions())

Tidak 100% yakin jika berfungsi sebagaimana yang dimaksudkan, saya mungkin telah kehilangan sesuatu sepenuhnya.


-2
2017-12-11 18:18