как удалить пакет, установленный с помощью pip install --user

<p>для pip есть опция <code>--user</code>, которая может установить пакет python для пользователя:</p><pre><code>pip install --user [python-package-name] </code></pre><p>я использовал эту опцию, чтобы установить пакет на сервер, для которого у меня нет прав root. теперь мне нужно удалить установленный пакет для текущего пользователя. я попытался выполнить эту команду:</p><pre><code>pip uninstall --user [python-package-name] </code></pre><p>но я получил:</p><pre><code>no such option: --user </code></pre><p>как я могу удалить пакет, который я установил с помощью <code>pip install --user</code>, кроме ручного поиска и удаления пакета?</p><p>я нашел эту статью </p><p> <a href="https://stackoverflow.com/questions/33412974/uninstall-python-package-per-user">pip не может быть удален из пользовательского каталога site-packages</a> </p><p>который описывает, что удаление пакетов из каталога пользователя не поддерживается. согласно статье, если она была реализована правильно, то с</p><pre><code>pip uninstall [package-name] </code></pre><p>установленный пакет будет также найден в пользовательских каталогах. но проблема все еще остается для меня. что, если один и тот же пакет был установлен как для всей системы, так и для каждого пользователя? что если кому-то нужно указать целевой каталог пользователя?</p>

<p>протестировав это с помощью python 3.5 и pip 7.1.2 в linux, ситуация выглядит так:</p><ul> <li><p><code>pip install --user somepackage</code> устанавливается в <code>$home/.local, и его удаление работает с использованием pip uninstall somepackage. это верно независимо от того, установлен ли somepackage в масштабе всей системы одновременно. если пакет установлен в обоих местах, будет удален только локальный. чтобы удалить пакет в масштабе всей системы с помощью pip, сначала удалите его локально, а затем снова выполните ту же команду удаления с привилегиями root. в дополнение к предопределенному пользовательскому каталогу установки, pip install --target somedir somepackage установит пакет в somedir. невозможно удалить пакет из такого места, используя pip. (но на github есть несколько старый необработанный pull-запрос, который реализует pip uninstall --target.) поскольку единственные места, из которых когда-либо удаляется pip, - это общесистемные и предварительно определенные локальные пользователи, вам нужно запустить pip uninstall от имени соответствующего пользователя, чтобы удалить его из локального каталога установки данного пользователя. 

пример удаления пакета «oauth2client» в macos:pip uninstall oauth2client 

как упомянул @ thomas-lotze, в настоящее время инструменты pip этого не делают, так как нет соответствующей опции --user. но я обнаружил, что могу проверить в ~/.local/bin и найти конкретный пункт #. #, который, как мне кажется, соответствует опции --user.в моем случае:antho@noctil: ~/.l/bin$ pwd /home/antho/.local/bin antho@noctil: ~/.l/bin$ ls pip* pip pip2 pip2.7 pip3 pip3.5 </code></pre><p>а затем просто удалите с определенной версией пипа.</p>

<p>ответ<strong> пока невозможно </strong>. вы должны удалить его вручную.</p>

<p>вы можете удалить все пакеты одновременно.</p><pre><code>1. first, install pip-purge. pip install pip-purge 2. then, run pip-purge </code></pre><p>удостоверьтесь, чтобы только бежать в virtualenv </p>

<p>я использую anaconda версии 4.3.22 и среду python3.6.1, и у меня возникла эта проблема. вот история и исправление:</p><pre><code>pip uninstall opencv-python # -- the original step. failed. importerror: dll load failed: the specified module could not be found. </code></pre><p>я сделал это в моей среде python3.6 и получил эту ошибку.</p><pre><code>python -m pip install opencv-python # same package as above. conda install -c conda-forge opencv # separate install parallel to opencv pip-install opencv-contrib-python # suggested by another user here. doesn't resolve it. </code></pre><p>затем я попытался загрузить python3.6 и поместить python3.dll в папку и в разные папки. ничего не изменилось. </p><p>наконец, это исправлено: </p><pre><code>pip uninstall opencv-python </code></pre><p>(другая версия conda-forge все еще установлена) это оставило только версию conda, и это работает в 3.6. </p><pre><code>>>>import cv2 >>> </code></pre><p>за работой!</p>