Как мне удалить / удалить virtualenv?

Теперь это возможно, но только для телефонов с версией выше или равной 2.2 с использованием интерфейса android.text.style.LeadingMarginSpan.LeadingMarginSpan2, доступного в API 8.

Вот статья , но не на английском языке, но вы можете загрузить исходный код примера непосредственно из здесь .

Если вы хотите, чтобы ваше приложение совместимо со старыми устройствами, вы можете отобразить разная компоновка без плавающего текста. Вот пример:

Макет (по умолчанию для более старых версий будет изменен программно для более новых версий)


    

    

Вспомогательный класс

class FlowTextHelper {

    private static boolean mNewClassAvailable;

    static {
        if (Integer.parseInt(Build.VERSION.SDK) >= 8) { // Froyo 2.2, API level 8
           mNewClassAvailable = true;
        }
    }

    public static void tryFlowText(String text, View thumbnailView, TextView messageView, Display display){
        // There is nothing I can do for older versions, so just return
        if(!mNewClassAvailable) return;

        // Get height and width of the image and height of the text line
        thumbnailView.measure(display.getWidth(), display.getHeight());
        int height = thumbnailView.getMeasuredHeight();
        int width = thumbnailView.getMeasuredWidth();
        float textLineHeight = messageView.getPaint().getTextSize();

        // Set the span according to the number of lines and width of the image
        int lines = (int)FloatMath.ceil(height / textLineHeight);
        //For an html text you can use this line: SpannableStringBuilder ss = (SpannableStringBuilder)Html.fromHtml(text);
        SpannableString ss = new SpannableString(text);
        ss.setSpan(new MyLeadingMarginSpan2(lines, width), 0, ss.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
        messageView.setText(ss);

        // Align the text with the image by removing the rule that the text is to the right of the image
        RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams)messageView.getLayoutParams();
        int[]rules = params.getRules();
        rules[RelativeLayout.RIGHT_OF] = 0;
    }
}

Класс myLeadingMarginSpan2 (обновлен для поддержки API 21)

public class MyLeadingMarginSpan2 implements LeadingMarginSpan2 {
    private int margin;
    private int lines;
    private boolean wasDrawCalled = false;
    private int drawLineCount = 0;

    public MyLeadingMarginSpan2(int lines, int margin) {
        this.margin = margin;
        this.lines = lines;
    }

    @Override
    public int getLeadingMargin(boolean first) {
        boolean isFirstMargin = first;
        // a different algorithm for api 21+
        if (Build.VERSION.SDK_INT >= 21) {
            this.drawLineCount = this.wasDrawCalled ? this.drawLineCount + 1 : 0;
            this.wasDrawCalled = false;
            isFirstMargin = this.drawLineCount <= this.lines;
        }

        return isFirstMargin ? this.margin : 0;
    }

    @Override
    public void drawLeadingMargin(Canvas c, Paint p, int x, int dir, int top, int baseline, int bottom, CharSequence text, int start, int end, boolean first, Layout layout) {
        this.wasDrawCalled = true;
    }

    @Override
    public int getLeadingMarginLineCount() {
        return this.lines;
    }
}

Пример использования

ImageView thumbnailView = (ImageView) findViewById(R.id.thumbnail_view);
TextView messageView = (TextView) findViewById(R.id.message_view);
String text = getString(R.string.text);

Display display = getWindowManager().getDefaultDisplay();
FlowTextHelper.tryFlowText(text, thumbnailView, messageView, display);

Так выглядит приложение на устройстве Android 2.2: Android 2.2 the text flows around the image [/g2]

И это для устройства Android 2.1:

Android 2.1 the text is situated near the image [/g3]

373
задан Abhijeet 22 June 2017 в 02:33
поделиться

15 ответов

Вот и все! Нет команды для удаления вашей виртуальной среды. Просто отключите его и избавьте свое приложение от его артефактов, рекурсивно удалив его.

Обратите внимание, что это одно и то же независимо от того, какую виртуальную среду вы используете. virtualenv, venv, среда Анаконды, pyenv, pipenv основаны здесь на том же принципе.

321
ответ дан ivan_pozdeev 22 June 2017 в 02:33
поделиться

шаг 1: удалите virtualenv virtualenvwrapper, скопируйте и вставьте следующую команду ниже:

$ 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

ЗАКЛЮЧИТЕЛЬНЫЕ шаги: без терминала / оболочки перейдите в / home и найдите .virtualenv (я забыл имя, так что если ваша находка похожа на .virtualenv или .venv просто удалите его. Это сработает.

-4
ответ дан Wanz Hated 22 June 2017 в 02:33
поделиться

deactivate - это команда, которую вы ищете. Как и то, что уже было сказано, нет команды для удаления вашей виртуальной среды. Просто отключите его!

0
ответ дан garrettmac 22 June 2017 в 02:33
поделиться

Если вы пользователь Windows, и вы используете conda для управления средой в приглашении Anaconda, вы можете сделать следующее:

Убедитесь, что вы отключили виртуальную среду или перезапустите Anaconda Prompt. Используйте следующую команду для удаления виртуальной среды:

$ conda env remove --name $MyEnvironmentName

Кроме того, вы можете перейти в C: \ Users \ USERNAME \ AppData \ Local \ Continuum \ anaconda3 \ envs \ MYENVIRONMENTNAME (это путь к файлу по умолчанию) и удалите папку вручную.

1
ответ дан CathyQian 22 June 2017 в 02:33
поделиться

Если вы используете pyenv, вы можете удалить вашу виртуальную среду:

$ pyenv virtualenv-delete <name>
3
ответ дан Christiaan Herrewijn 22 June 2017 в 02:33
поделиться

Итак, я немного погуглил, но ни один из ответов не был удовлетворительным.

Но случайно, при прокрутке man-страниц pip (утилита для установки пакетов, поддерживаемых python - одна из них - virtualenv), было задокументировано использование ключевого слова «uninstall» с pip, ниже приведен точный вывод прямо из моего терминала


indresh-VBX] **$ sudo pip uninstall virtualenv**

Каталог '/home/indresh/.cache/pip/http' или его родительский каталог не принадлежат текущему пользователю, и кэш отключен. Пожалуйста, проверьте разрешения и владельца этого каталога. Если вы выполняете pip с помощью sudo, вам может потребоваться флаг -do sudo.

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/virtuakmr.ndrsh@gmail.comlenv_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.
--------------------------------
-4
ответ дан Rob 22 June 2017 в 02:33
поделиться

Если вы пользователь Windows, вы также можете удалить среду, перейдя по ссылке: C:/Users/username/Anaconda3/envs Здесь вы можете увидеть список виртуальной среды и удалить ту, которая вам больше не нужна.

1
ответ дан Shekhar 22 June 2017 в 02:33
поделиться

Вы можете удалить все зависимости, рекурсивно удалив их все, а затем удалив venv.

Редактировать , включая комментарий Айзека Тернера

source venv/bin/activate
pip freeze > requirements.txt
pip uninstall -r requirements.txt -y
deactivate
rm -r venv/
58
ответ дан Antman Slaper Man 22 June 2017 в 02:33
поделиться

Если вы пользователь Windows, тогда он находится в C: \ Users \ your_user_name \ Envs. Вы можете удалить его оттуда.

Также попробуйте в командной строке имя среды rmvirtualenv.

Я попытался с помощью командной строки, чтобы он сказал, что удален, но он все еще существует. Поэтому я вручную удаляю его.

1
ответ дан jahmed31 22 June 2017 в 02:33
поделиться

Использовать rmvirtualenv

Удалить среду, в $WORKON_HOME.

Синтаксис:

rmvirtualenv ENVNAME

Вы должны использовать деактивацию перед удалением текущей среды.

$ rmvirtualenv my_env

Ссылка: http://virtualenvwrapper.readthedocs.io/en/latest/command_ref.html

85
ответ дан aydow 22 June 2017 в 02:33
поделиться

из официального документа virtualenv https://virtualenv.pypa.io/en/stable/userguide/

Удаление среды

Удаление виртуального окружение просто делается путем его деактивации и удаления папки окружения со всем ее содержимым:

(ENV)$ deactivate
$ rm -r /path/to/ENV
23
ответ дан Konrad Borowski 22 June 2017 в 02:33
поделиться

Я использовал pyenv uninstall my_virt_env_name для удаления виртуальной среды.

Примечание: я использую pyenv-virtualenv, установленный через скрипт установки.

3
ответ дан Ole Henrik Skogstrøm 22 June 2017 в 02:33
поделиться

Следующая команда работает для меня.

rm -rf /path/to/virtualenv
3
ответ дан Ashiq Imran 22 June 2017 в 02:33
поделиться

Просто чтобы повторить то, что @skytreader ранее прокомментировал, rmvirtualenv - это команда, предоставленная virtualenvwrapper, а не virtualenv. Может быть, у вас не установлено virtualenvwrapper?

См. Справочник команд VirtualEnvWrapper для получения более подробной информации.

155
ответ дан Devy 22 June 2017 в 02:33
поделиться

Просто удалите виртуальную среду из системы. Специальной команды для нее не существует

rm -rf venv
25
ответ дан Naveen Agarwal 22 June 2017 в 02:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: