Reputation: 333
I'm trying to follow Python's best practice for environment settings as described below. https://averlytics.com/2017/08/06/virtual-environment-a-python-best-practice/
The whole point of the article is to install packages only in a virtual environment and avoid installing any other things on the system. I tried to follow this practice by completely deleting Pycharm, Anaconda, Python and re-installing them from scratch.
After then, I've always tried to set up virtual environment on Pycharm (venv
) to do my work.
However, I think I made a mistake or two by pip install ...
on default terminal, which resulted in system installed packages again.
I really wanna get back on track of best practice installation but don't wanna go through whole uninstall and reinstall process.
I checked pip list
on my PowerShell but I can't tell which one I should leave and which one I should uninstall, because maybe there are some packages that keep my Anaconda and Pycharm and the whole things working. I don't wanna make another problem out of this one.
What should I do? Is it too late and better off just leaving them as they are? Is "keeping minimal system installation and do all the installation on virtual environment" thing still valid as of now?
I wish somebody had taught me better than installing Python and using IDLE in the first place.
Here are the list of installed packages.
PS C:\WINDOWS\system32> pip list
DEPRECATION: The default format will switch to columns in the future. You can use --format=(legacy|columns) (or define a format=(legacy|columns) in your pip.conf under the [list] section) to disable this warning.
absl-py (0.2.0)
alabaster (0.7.10)
anaconda-client (1.6.9)
anaconda-navigator (1.8.4)
anaconda-project (0.8.2)
asn1crypto (0.24.0)
astor (0.6.2)
astroid (1.6.1)
astropy (2.0.3)
attrs (17.4.0)
Babel (2.5.3)
backports.shutil-get-terminal-size (1.0.0)
beautifulsoup4 (4.6.0)
bitarray (0.8.1)
bkcharts (0.2)
blaze (0.11.3)
bleach (1.5.0)
bokeh (0.12.13)
boto (2.48.0)
Bottleneck (1.2.1)
certifi (2018.1.18)
cffi (1.11.4)
chardet (3.0.4)
click (6.7)
cloudpickle (0.5.2)
clyent (1.2.2)
colorama (0.3.9)
comtypes (1.1.4)
conda (4.4.10)
conda-build (3.4.1)
conda-verify (2.0.0)
contextlib2 (0.5.5)
cryptography (2.1.4)
cycler (0.10.0)
Cython (0.27.3)
cytoolz (0.9.0)
dask (0.16.1)
datashape (0.5.4)
decorator (4.2.1)
distributed (1.20.2)
docutils (0.14)
entrypoints (0.2.3)
et-xmlfile (1.0.1)
fastcache (1.0.2)
filelock (2.0.13)
Flask (0.12.2)
Flask-Cors (3.0.3)
gast (0.2.0)
gevent (1.2.2)
glob2 (0.6)
greenlet (0.4.12)
grpcio (1.11.0)
h5py (2.7.1)
heapdict (1.0.0)
html5lib (0.9999999)
idna (2.6)
imageio (2.2.0)
imagesize (0.7.1)
ipykernel (4.8.2)
ipython (6.2.1)
ipython-genutils (0.2.0)
ipywidgets (7.1.1)
isort (4.2.15)
itsdangerous (0.24)
jdcal (1.3)
jedi (0.11.1)
Jinja2 (2.10)
jsonschema (2.6.0)
jupyter (1.0.0)
jupyter-client (5.2.2)
jupyter-console (5.2.0)
jupyter-core (4.4.0)
jupyterlab (0.31.4)
jupyterlab-launcher (0.10.2)
lazy-object-proxy (1.3.1)
llvmlite (0.21.0)
locket (0.2.0)
lxml (4.1.1)
Markdown (2.6.11)
MarkupSafe (1.0)
matplotlib (2.1.2)
mccabe (0.6.1)
menuinst (1.4.11)
mistune (0.8.3)
mpmath (1.0.0)
msgpack-python (0.5.1)
multipledispatch (0.4.9)
navigator-updater (0.1.0)
nbconvert (5.3.1)
nbformat (4.4.0)
networkx (2.1)
nltk (3.2.5)
nose (1.3.7)
notebook (5.4.0)
numba (0.36.2)
numexpr (2.6.4)
numpy (1.14.0)
numpydoc (0.7.0)
odo (0.5.1)
olefile (0.45.1)
openpyxl (2.4.10)
packaging (16.8)
pandas (0.22.0)
pandocfilters (1.4.2)
parso (0.1.1)
partd (0.3.8)
path.py (10.5)
pathlib2 (2.3.0)
patsy (0.5.0)
pep8 (1.7.1)
pickleshare (0.7.4)
Pillow (5.0.0)
pip (9.0.1)
pkginfo (1.4.1)
pluggy (0.6.0)
ply (3.10)
prompt-toolkit (1.0.15)
protobuf (3.5.2.post1)
psutil (5.4.3)
py (1.5.2)
pycodestyle (2.3.1)
pycosat (0.6.3)
pycparser (2.18)
pycrypto (2.6.1)
pycurl (7.43.0.1)
pyflakes (1.6.0)
Pygments (2.2.0)
pylint (1.8.2)
pyodbc (4.0.22)
pyOpenSSL (17.5.0)
pyparsing (2.2.0)
PySocks (1.6.7)
pytest (3.3.2)
python-dateutil (2.6.1)
pytz (2017.3)
PyWavelets (0.5.2)
pywin32 (222)
pywinpty (0.5)
PyYAML (3.12)
pyzmq (16.0.3)
QtAwesome (0.4.4)
qtconsole (4.3.1)
QtPy (1.3.1)
requests (2.18.4)
rope (0.10.7)
ruamel-yaml (0.15.35)
scikit-image (0.13.1)
scikit-learn (0.19.1)
scipy (1.0.0)
seaborn (0.8.1)
Send2Trash (1.4.2)
setuptools (38.4.0)
simplegeneric (0.8.1)
singledispatch (3.4.0.3)
six (1.11.0)
snowballstemmer (1.2.1)
sortedcollections (0.5.3)
sortedcontainers (1.5.9)
Sphinx (1.6.6)
sphinxcontrib-websupport (1.0.1)
spyder (3.2.6)
SQLAlchemy (1.2.1)
statsmodels (0.8.0)
sympy (1.1.1)
tables (3.4.2)
tblib (1.3.2)
tensorboard (1.8.0)
tensorflow (1.8.0)
termcolor (1.1.0)
terminado (0.8.1)
testpath (0.3.1)
toolz (0.9.0)
tornado (4.5.3)
traitlets (4.3.2)
typing (3.6.2)
unicodecsv (0.14.1)
urllib3 (1.22)
wcwidth (0.1.7)
webencodings (0.5.1)
Werkzeug (0.14.1)
wheel (0.30.0)
widgetsnbextension (3.1.0)
win-inet-pton (1.0.1)
win-unicode-console (0.5)
wincertstore (0.2)
wrapt (1.10.11)
xlrd (1.1.0)
XlsxWriter (1.0.2)
xlwings (0.11.5)
xlwt (1.3.0)
zict (0.1.3)
Upvotes: 1
Views: 2270
Reputation: 4699
Create a list of installed packages as a file:
pip freeze > requirements.txt
Edit the txt file to exclude any packages you want to keep. From your list, I think the only packages that ship with python are pip and setuptools. Usually virtualenv is there too but I don't see it on you list. You could remove all but those, and then run
pip uninstall -r requirements.txt
Or to remove all at once:
pip uninstall -r requirements.txt -y
Source : What is the easiest way to remove all packages installed by pip?
Alternatively, you can always remove your installation and reinstall.
Looks like you have a bit of mess, so that's probably what I would do.
If you have a lot of virtualenvs you might need to recreate them after a python reinstall, so make sure you have your dependencies written in a requirements.txt file in each of your virtualenv projects
Upvotes: 2