Skip to main content

Command Palette

Search for a command to run...

Understanding pip—The Package Installer for Python

Updated
3 min readView as Markdown
Understanding pip—The Package Installer for Python
N

I am a Tech Enthusiast having 13+ years of experience in 𝐈𝐓 as a 𝐂𝐨𝐧𝐬𝐮𝐥𝐭𝐚𝐧𝐭, 𝐂𝐨𝐫𝐩𝐨𝐫𝐚𝐭𝐞 𝐓𝐫𝐚𝐢𝐧𝐞𝐫, 𝐌𝐞𝐧𝐭𝐨𝐫, with 12+ years in training and mentoring in 𝐒𝐨𝐟𝐭𝐰𝐚𝐫𝐞 𝐄𝐧𝐠𝐢𝐧𝐞𝐞𝐫𝐢𝐧𝐠, 𝐃𝐚𝐭𝐚 𝐄𝐧𝐠𝐢𝐧𝐞𝐞𝐫𝐢𝐧𝐠, 𝐓𝐞𝐬𝐭 𝐀𝐮𝐭𝐨𝐦𝐚𝐭𝐢𝐨𝐧 𝐚𝐧𝐝 𝐃𝐚𝐭𝐚 𝐒𝐜𝐢𝐞𝐧𝐜𝐞. I have 𝒕𝒓𝒂𝒊𝒏𝒆𝒅 𝒎𝒐𝒓𝒆 𝒕𝒉𝒂𝒏 10,000+ 𝑰𝑻 𝑷𝒓𝒐𝒇𝒆𝒔𝒔𝒊𝒐𝒏𝒂𝒍𝒔 and 𝒄𝒐𝒏𝒅𝒖𝒄𝒕𝒆𝒅 𝒎𝒐𝒓𝒆 𝒕𝒉𝒂𝒏 500+ 𝒕𝒓𝒂𝒊𝒏𝒊𝒏𝒈 𝒔𝒆𝒔𝒔𝒊𝒐𝒏𝒔 in the areas of 𝐒𝐨𝐟𝐭𝐰𝐚𝐫𝐞 𝐃𝐞𝐯𝐞𝐥𝐨𝐩𝐦𝐞𝐧𝐭, 𝐃𝐚𝐭𝐚 𝐄𝐧𝐠𝐢𝐧𝐞𝐞𝐫𝐢𝐧𝐠, 𝐂𝐥𝐨𝐮𝐝, 𝐃𝐚𝐭𝐚 𝐀𝐧𝐚𝐥𝐲𝐬𝐢𝐬, 𝐃𝐚𝐭𝐚 𝐕𝐢𝐬𝐮𝐚𝐥𝐢𝐳𝐚𝐭𝐢𝐨𝐧𝐬, 𝐀𝐫𝐭𝐢𝐟𝐢𝐜𝐢𝐚𝐥 𝐈𝐧𝐭𝐞𝐥𝐥𝐢𝐠𝐞𝐧𝐜𝐞 𝐚𝐧𝐝 𝐌𝐚𝐜𝐡𝐢𝐧𝐞 𝐋𝐞𝐚𝐫𝐧𝐢𝐧𝐠. I am interested in 𝐰𝐫𝐢𝐭𝐢𝐧𝐠 𝐛𝐥𝐨𝐠𝐬, 𝐬𝐡𝐚𝐫𝐢𝐧𝐠 𝐭𝐞𝐜𝐡𝐧𝐢𝐜𝐚𝐥 𝐤𝐧𝐨𝐰𝐥𝐞𝐝𝐠𝐞, 𝐬𝐨𝐥𝐯𝐢𝐧𝐠 𝐭𝐞𝐜𝐡𝐧𝐢𝐜𝐚𝐥 𝐢𝐬𝐬𝐮𝐞𝐬, 𝐫𝐞𝐚𝐝𝐢𝐧𝐠 𝐚𝐧𝐝 𝐥𝐞𝐚𝐫𝐧𝐢𝐧𝐠 new subjects.

Introduction to Libraries in Programming

Libraries contain reusable code that simplifies development and enhances efficiency. Instead of reinventing the wheel, developers can leverage existing solutions to accelerate projects.

Popular repositories include:

  • GitHub: General source code repository.

  • npm: JavaScript libraries.

  • PyPI (Python Package Index): Python packages.

Benefits of Using Libraries

  1. Code Reusability: Saves time by utilizing prebuilt functions and modules.

  2. Improved Efficiency: Optimized, tested implementations enhance performance.

  3. Community Support: Many libraries are maintained and improved by active developer communities.

  4. Standardization: Helps developers adhere to best practices in programming.

Common Python Libraries

  • requests → Simplifies HTTP calls.

  • pandas → Enables powerful data manipulation.

  • pyspark → Provides tools for Big Data processing.

Challenges of Manual Library Management

Copying and pasting library code manually leads to several issues:

  • Tedious Process: Manually downloading, copying, and updating libraries is inefficient.

  • Dependency Conflicts: Different projects require different versions of libraries.

  • Code Duplication: Leads to redundant files, increasing project complexity.

  • Import Errors: Python may struggle to determine which library version to use.

Introducing pip

pip is the official package installer for Python. It streamlines package management by automating installation, updates, and dependency resolution.

Features of pip

  • Easy package installation and removal.

  • Automatic dependency resolution to prevent conflicts.

  • Version control, allowing installation of specific library versions.

  • Uninstall process that cleans up unneeded packages.

  • Ability to list installed packages for project tracking.

Basic pip Commands

Installing Packages

pip install pandas
pip install pytest sphinx mypy
pip install "fastapi[all]"
pip install requests==2.26.0
pip install 'git+https://github.com/pydantic/pydantic'

Upgrading Packages

pip install --upgrade requests

Uninstalling Packages

pip uninstall pandas

Listing Installed Packages

pip list

Managing Dependencies Efficiently

Using Requirement Files

Instead of installing packages manually, developers can list dependencies in a requirements file for easy sharing.

Creating a Requirements File

pip freeze > requirements.txt

Installing Dependencies from File

pip install -r requirements.txt

Best Practices

  • Include requirements.txt in your Git repository.

  • Exclude virtual environments (e.g., venv/) using .gitignore to keep repositories clean.

Virtual Environments: Isolating Dependencies

Virtual environments prevent dependency conflicts across projects by keeping packages separate.

Creating a Virtual Environment

python -m venv env

Activating the Virtual Environment

  • Windows: env\Scripts\activate

  • macOS/Linux: source env/bin/activate

Deactivating the Virtual Environment

deactivate

Advanced pip Usage and Best Practices

Checking pip Version

pip --version

Upgrading pip

python -m pip install --upgrade pip

Viewing Package Details

pip show pandas

Searching for Packages

pip search requests  # Deprecated in newer pip versions

Using a Constraints File

For flexible dependency management: constraints.txt

requests>=2.26,<3.0

Installing Dependencies with Constraints

pip install -r requirements.txt -c constraints.txt

Resetting an Environment by Uninstalling All Packages

pip freeze | xargs pip uninstall -y

More from this blog

Naveen P.N's Tech Blog

95 posts