Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
689 views
in Technique[技术] by (71.8m points)

python - conda install -n base --revision 1 doesn't clean up pypi packages

I attempted cleaning up my base (mini)conda environment by installing revision 1 of the base environment.

$ conda install -n base --revision 1

For reference, here is what revision 1 means in my case.

$ conda list -n base --revisions
2019-10-24 14:29:57  (rev 0)
    +asn1crypto-1.2.0
    +ca-certificates-2019.10.16
    +certifi-2019.9.11
    +cffi-1.13.0
    +chardet-3.0.4
    +conda-4.7.12
    +conda-package-handling-1.6.0
    +cryptography-2.8
    +idna-2.8
    +libcxx-4.0.1
    +libcxxabi-4.0.1
    +libedit-3.1.20181209
    +libffi-3.2.1
    +ncurses-6.1
    +openssl-1.1.1d
    +pip-19.3.1
    +pycosat-0.6.3
    +pycparser-2.19
    +pyopenssl-19.0.0
    +pysocks-1.7.1
    +python-3.7.4
    +python.app-2
    +readline-7.0
    +requests-2.22.0
    +ruamel_yaml-0.15.46
    +setuptools-41.4.0
    +six-1.12.0
    +sqlite-3.30.0
    +tk-8.6.8
    +tqdm-4.36.1
    +urllib3-1.24.2
    +wheel-0.33.6
    +xz-5.2.4
    +yaml-0.1.7
    +zlib-1.2.11

2019-11-06 20:50:32  (rev 1)
     cffi  {1.13.0 -> 1.13.1}
     setuptools  {41.4.0 -> 41.6.0}
     sqlite  {3.30.0 -> 3.30.1}

Despite the above conda install command, my base environment is still polluted by various python packages, that were installed after revision 1.

$ conda list -n base
# packages in environment at /opt/miniconda3:
#
# Name                    Version                   Build  Channel
absl-py                   0.8.1                    pypi_0    pypi
alabaster                 0.7.12                   pypi_0    pypi
appnope                   0.1.0                    pypi_0    pypi
asn1crypto                1.2.0                    py37_0  
astor                     0.8.0                    pypi_0    pypi
aws-sam-translator        1.21.0                   pypi_0    pypi
aws-xray-sdk              2.4.3                    pypi_0    pypi
babel                     2.8.0                    pypi_0    pypi
bleach                    3.1.0                    pypi_0    pypi
boto                      2.49.0                   pypi_0    pypi
boto3                     1.12.17                  pypi_0    pypi
botocore                  1.15.17                  pypi_0    pypi
ca-certificates           2019.10.16                    0  
certifi                   2019.9.11                py37_0  
cffi                      1.13.1           py37hb5b8e2f_0  
cfn-lint                  0.28.4                   pypi_0    pypi
chardet                   3.0.4                 py37_1003  
conda                     4.7.12                   py37_0  
conda-package-handling    1.6.0            py37h1de35cc_0  
confluence-py             1.0.1                    pypi_0    pypi
coverage                  5.0.3                    pypi_0    pypi
cryptography              2.8              py37ha12b0ac_0  
defusedxml                0.6.0                    pypi_0    pypi
docker                    4.2.0                    pypi_0    pypi
docutils                  0.16                     pypi_0    pypi
ecdsa                     0.15                     pypi_0    pypi
entrypoints               0.3                      pypi_0    pypi
future                    0.18.2                   pypi_0    pypi
gast                      0.2.2                    pypi_0    pypi
google-pasta              0.1.8                    pypi_0    pypi
grpcio                    1.24.3                   pypi_0    pypi
h5py                      2.8.0                    pypi_0    pypi
idna                      2.8                      py37_0  
imagesize                 1.2.0                    pypi_0    pypi
ipython-genutils          0.2.0                    pypi_0    pypi
jmespath                  0.9.5                    pypi_0    pypi
jsondiff                  1.1.2                    pypi_0    pypi
jsonpatch                 1.25                     pypi_0    pypi
jsonpickle                1.3                      pypi_0    pypi
jsonpointer               2.0                      pypi_0    pypi
jupyterlab                1.2.1                    pypi_0    pypi
keras-applications        1.0.8                    pypi_0    pypi
keras-preprocessing       1.1.0                    pypi_0    pypi
libcxx                    4.0.1                hcfea43d_1  
libcxxabi                 4.0.1                hcfea43d_1  
libedit                   3.1.20181209         hb402a30_0  
libffi                    3.2.1                h475c297_4  
markdown                  3.1.1                    pypi_0    pypi
mock                      4.0.1                    pypi_0    pypi
moto                      1.3.14                   pypi_0    pypi
nbsphinx                  0.5.1                    pypi_0    pypi
ncurses                   6.1                  h0a44026_1  
numpy                     1.16.4                   pypi_0    pypi
openssl                   1.1.1d               h1de35cc_3  
opt-einsum                3.1.0                    pypi_0    pypi
packaging                 20.3                     pypi_0    pypi
pickleshare               0.7.5                    pypi_0    pypi
pip                       19.3.1                   py37_0  
pluggy                    0.13.1                   pypi_0    pypi
protobuf                  3.10.0                   pypi_0    pypi
ptyprocess                0.6.0                    pypi_0    pypi
py                        1.8.1                    pypi_0    pypi
pyasn1                    0.4.8                    pypi_0    pypi
pycosat                   0.6.3            py37h1de35cc_0  
pycparser                 2.19                     py37_0  
pyflakes                  2.1.1                    pypi_0    pypi
pyinquirer                1.0.3                    pypi_0    pypi
pyopenssl                 19.0.0                   py37_0  
pyparsing                 2.4.6                    pypi_0    pypi
pyrsistent                0.15.5                   pypi_0    pypi
pysocks                   1.7.1                    py37_0  
pytest                    5.3.5                    pypi_0    pypi
pytest-cov                2.8.1                    pypi_0    pypi
pytest-flakes             4.0.0                    pypi_0    pypi
python                    3.7.4                h359304d_1  
python-jose               3.1.0                    pypi_0    pypi
python.app                2                        py37_9  
pytz                      2019.3                   pypi_0    pypi
pyyaml                    5.3                      pypi_0    pypi
pyzmq                     18.1.0                   pypi_0    pypi
readline                  7.0                  h1de35cc_5  
regex                     2019.11.1                pypi_0    pypi
requests                  2.22.0                   py37_0  
responses                 0.10.12                  pypi_0    pypi
rsa                       4.0                      pypi_0    pypi
ruamel_yaml               0.15.46          py37h1de35cc_0  
s3transfer                0.3.3                    pypi_0    pypi
send2trash                1.5.0                    pypi_0    pypi
setuptools                41.6.0                   py37_0  
six                       1.11.0                   pypi_0    pypi
snowballstemmer           2.0.0                    pypi_0    pypi
sphinx                    2.4.4                    pypi_0    pypi
sphinxcontrib-applehelp   1.0.2                    pypi_0    pypi
sphinxcontrib-devhelp     1.0.2                    pypi_0    pypi
sphinxcontrib-htmlhelp    1.0.3                    pypi_0    pypi
sphinxcontrib-jsmath      1.0.1                    pypi_0    pypi
sphinxcontrib-qthelp      1.0.3                    pypi_0    pypi
sphinxcontrib-serializinghtml 1.1.4                    pypi_0    pypi
sqlite                    3.30.1               ha441bb4_0  
sshpubkeys                3.1.0                    pypi_0    pypi
tensorboard               1.15.0                   pypi_0    pypi
tensorflow                1.15.0                   pypi_0    pypi
tensorflow-estimator      1.15.1                   pypi_0    pypi
tensorflow-hub            0.5.0                    pypi_0    pypi
tensorflowjs              1.3.1.1                  pypi_0    pypi
termcolor                 1.1.0                    pypi_0    pypi
terminado                 0.8.2                    pypi_0    pypi
tk                        8.6.8                ha441bb4_0  
tqdm                      4.36.1                     py_0  
urllib3                   1.24.2                   py37_0  
wcwidth                   0.1.7                    pypi_0    pypi
webencodings              0.5.1                    pypi_0    pypi
websocket-client          0.57.0                   pypi_0    pypi
werkzeug                  0.16.0                   pypi_0    pypi
wheel                     0.33.6                   py37_0  
wrapt                     1.11.2                   pypi_0    pypi
xmltodict                 0.12.0                   pypi_0    pypi
xz                        5.2.4                h1de35cc_4  
yaml                      0.1.7                hc338f04_2  
zlib                      1.2.11               h1de35cc_3  

The environment still contains unwanted packages from the pypi channel. Can I only get rid of them via pip uninstall (which is terribly tedious) or there's a nicer / less manual way, like conda install --revision?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

There is nothing in the Conda CLI to handle this, but pip uninstall also works with a requirements.txt, which could easily be made with this output. For example,

conda list | awk '$4 ~ /^pypi$/ { print $1 }' > requirements.txt
pip uninstall -r requirements.txt

or if you want a one liner

# make sure you have the right environment activated!
pip uninstall -r <(conda list | awk '$4 ~ /^pypi$/ {print $1}')

There is a -y flag for pip uninstall, but I would review the operation, just to double check it is removing from where you expect.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...