While running Python version 3.8.10 today, out of the blue I saw this error attempting to pip install a package in my virtual environment:
ERROR: Cannot perform a '--user' install. User site-packages are not visible in this virtualenv.
I found a Github thread that fixed the problem! You need to update your pyvenv.cfg in order to resolve this conflict.
Here is how to fix your Python environment from Github user jawalahe:
- Go to the pyvenv.cfg file in the virtual environment folder.
- Set include-system-site-packages to true and save the change.
After completing this, my pip installs worked again and no longer returned the error.
This command can be used to upgrade your Python requests library with pip, Python's package manager. It is tailored for a PythonAnywhere environment. I suppose this command works on any Bash console, but if you're running your app with pythonanywhere, you can find the bash console here:
- ::
- https://www.pythonanywhere.com/user/your_username/consoles/
Install requests with this command:
python3.8 -m pip install requests --upgrade --user
Substitute in whatever your Python version is. This command upgrades the requests library on a PythonAnywhere app. If any libraries depend on a specific version of requests, a warning appears like this one I saw for the python-unsplash library.
ERROR: python-unsplash 1.1.0 has requirement requests==2.20.0, but you'll have requests 2.27.1 which is incompatible.
Python comes with a bunch of standard modules. My favorites are
shutil, glob, datetime, time, os (operating system), re (regular
expressions) and webbrowser. The standard library is loaded.
Inevitably, you'll want to install new libraries from Python's rich
ecosystem of external modules. Enter pip, Python's handy package manager
and people's champion.
This post will teach you some Python history, show how to install
pandas, and help you troubleshoot problems if it's not working. You'll
find Windows and Linux commands for venv setup (recommended). With pip,
you'll feel like Neo when installing new modules. Any skill is at your
fingertips. It's like learning kung fu. There's probably a library for
that!
First, Some Python Version Caveats + History
Python 2 reached end of life on January 1st, 2020.
Python 2 has officially been sunset.
Python comes with pip now, no setup is required. But certain versions
such as Python 3.2 or the Python 2.7 that came stock on my improbably
still functioning 2008 black Macbook, for example, may not have it
installed.
In December 2021, Python 3.6 reached "end of life phase". Python 3.6 is "now effectively frozen". Read more in PEP 494. (Released Oct. 2022)
TLDR: use Python 3.7 to 3.11. This blog endorses using the lightning
fast Python version 3.11.
Enter This in Your Terminal
python -m pip install pandas
Pandas is a super useful library for wrangling spreadsheet data, AKA
"tabular" data. If successful, you should see activity that looks
similar to the below screenshot, where I am installing openpyxl, an additional Python
Excel library you'll likely want. You are good to go! This is the part
where you get to feel like Neo! See Installing Python Modules in the Python
Documentation for more detailed instructions.
To view all your installed libraries, enter:
pip list
Write a "requirements.txt" of installed libraries:
pip freeze > requirements.txt
You can list your outdated packages with the --outdated argument:
pip list --outdated
Use pip's -h help command line argument:
pip -h
View your system and user pip config settings:
pip config debug
Supplementary Resources
Congrats on figuring out how to install packages with pip, have fun!
Having issues? Try upgrading your pip version.
python -m pip install --upgrade pip
Try the ensurepip command.
This command will install and upgrade pip to the newest version. New in
Python 3.4:
python -m ensurepip --upgrade
"The ensurepip
package provides support for bootstrapping the pip installer into an
existing Python installation or virtual environment. This
bootstrapping approach reflects the fact that pip is an independent
project with its own release cycle, and the latest available stable
version is bundled with maintenance and feature releases of the
CPython reference interpreter."
- ensurepip Python Documentation
You should follow best practice and create a virtual environment before installing
libraries. venv or virtualenv. To create with venv:
python3 -m venv add_env_name_here
After your environment is created, activate it with the first command
below, then install a library on Ubuntu Linux:
source add_env_path_here/bin activate
python -m pip install pandas
Alternatively, on Windows computers:
cd add_env_path_here\scripts & activate
python -m pip install pandas
Getting the prefix right can be tricky.
In the install command, the prefix is a reference to your Python
executable. You may just need to alter your prefix to call it correctly.
Here are some to try in place of "python". Observe what happens when you
run these command variations. Good luck!
python3 -m pip install pandas
python3.11 -m pip install pandas
py -m pip install pandas
pip3 install pandas
How to Manually Enable the pip Installer
The rest of this post may be useful to you if you are:
- Working on legacy Python 2 or < 3.3 for which pip is not installed.
- Seeking to fix a faulty pip install that is not working properly.
- Curious to know how to manually set up pip.
Assumes Python is already installed. If you're running Windows 10, I
found it easy to install Python from the Windows store.
Download the get-pip.py file.
Go to the link, right click the page and "Save As" a .py file to
download. Then place the file where you want to access it. I placed mine
in C:Python27Libsite-packages
You could also download the file with curl:
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.pyt-pip.py
If you are not sure where your site-packages folder is, type python -m
site
into command prompt for file path ideas.
Run the get-pip.py file.
Using command prompt's cd command with a Windows "&" operator to run the
Python file in a Windows command prompt:
cd c:\Python27\Lib\site-packages & python get-pip.py
Or Linux terminal:
cd /Python27/Lib/site-packages && python get-pip.py
You should see some activity in command prompt that shows
installation/updating of "setup" and "wheel". When it finishes, you have
installed pip.
Type into command prompt at the same location:
python -m pip install requests
This installs the Requests module into your Python libraries.
Requests is an http module which is highly regarded almost universally
by the Python community.
Thanks for reading!
Check out these other posts with pip installed library examples:
fix Grammar and Spelling with language_tool_python and textblob
static site generation with pelican
text mojibake mash fixing with ftfy
a guide to making HTTP requests
simple GUI for scripts with gooey