Home Backend Development Python Tutorial All you need to know on how to install things with pip

All you need to know on how to install things with pip

Aug 12, 2024 pm 06:46 PM

All you need to know on how to install things with pip

In this article we are looking at different ways to install code into your virtual environment with pip.

These will increase in complexity, but fret not, I am there for you every step of the way. pats your back

Enough talk! Let's start with something easy.

Installing a local repository

Assume the following situation: You just checked out a repository and want to install the requirements.

This can easily be done by using the following command ... of course after you have created a virtual environment:

$ python -m venv (name of virtual environment)
$ source (name of virtual environment)/bin/activate
$ pip install .
Copy after login

If you are wondering about the install command and the absence of a requirements.txt, I have bad news for you. It is 2024 and you should no longer use a requirements.txt.

This is of course only my own opinion, but all repositories I am working with have a pyproject.toml and I would strongly recommend to use one in every of your projects as well. Viable exception might be sandbox projects and small scripts.

The "why" would be misplaced here, but allow me to give you a sneak peek. Not only does it allow you to define your requirements themselves. You can also define optional dependencies the user can install if needed.

This is especially useful for development tools, that you do not want in the productive application, like testing libraries or formatters.

But this is only the beginning of the list of features. They are also a place for metadata and allow for custom entry points to your application.

Here the install command again:

$ pip install .
Copy after login

Make sure that you are in the folder where the pyproject.toml can be found.
Here a pro-tip, use the following command if you intend to work on the repository you are installing

$ pip install -e .
Copy after login

This performs an editable install also known as "Development Mode" which allows you to iteratively test your code changes without the need to reinstall your project.

What does that mean?

Did it ever happen to you that you changed code in a module you are importing from, but the changes do not seem to take effect?

Try editable installs!

Interlude: Installing from a branch

Quick question: What do you do, if you want to install the version of a specific branch instead of the default branch?

The answer is obvious

$ git checkout (branch name)
Copy after login

and repeat the steps above! Right?

You fool, you just activated my trap card!

See, ever since version 2.23 there is a new kid in town which allows for more intuitive switching of branches and its name is git switch.

git checkout has been deprecated ever since.

So do not expose yourself in front of you colleagues by using out-dated tools. Instead, casually drop a git switch next time you are sharing your screen to let everyone know that you mean business.

Install from a private repository

Brace yourself!

Everything up to this point was mere child's play. Now it is time for some big boy pip usage.

See, everyone can install packages available in a package repository, but only knowing how to install from there will mean that all the gold in private repositories will remain inaccessible to you.

It is also helpful to test your own code before turning it into a package.

If you ever find yourself in such a situation, use this command:

$ pip install git+ssh://git@(your provider)/(owner)/(repo name).git
Copy after login

Here an example without the placeholders, that might make it easier to understand.

$ pip install git+ssh://git@github.com/pandas-dev/pandas.git
Copy after login

Fun fact: everything after the '://' is almost identical to the ssh command generated by git. But notice, instead of the colon used to separate 'github.com' and the owner 'pandas-dev' a slash has to be replaced.

What if you want to install from a branch ... or any other reference for that matter?

Easy! Just add a @(ref) at the end of the command. So it can look something like

$ pip install git+ssh://git@github.com/pandas-dev/pandas.git@1.5.x (branch)
$ pip install git+ssh://git@github.com/pandas-dev/pandas.git@v2.2.2 (tag)
Copy after login

Private Repos and the pyproject.toml

But what if it is not enough to install packages from the command line? What if also your build pipeline should install from a private repository?

Hopefully, you agree that adding individual pip install statements to your pipeline is out of the question.

So instead, let me show you what to add to the dependencies section of the pyproject.toml. You will see, that it is very similar to the previous command:

"pandas@git+ssh://git@github.com/pandas-dev/pandas.git@1.5.x",
Copy after login

With this added, run again pip install -e ..

Congrats! You have just installed an outdated version of pandas into your environment. You might want to repeat that with the actual package you need.

Now make it fast

Since you stuck with me until this point, I will throw in a bonus tool recommendation.

These past couple of months I have used uv, which is a drop-in replacement for pip (among other often used tools in the python eco system) written in Rust.

The biggest selling point is that it significantly speeds up the creation of virtual environments and the installation of packages. Especially if you are recreating virtual environments, because it uses caching. We are talking about being 10 times faster ... or even 100 times faster if the cache is warm.

The list of benefits is much longer than that, but also this is a thing for another article. So, give it a try for now and thank me later.

Conclusion

Let's wrap this thing up.

These were all the ways I have used during my work when it comes to the interplay between git and pip. There might be other ways to install stuff, but this should cover 99% of use-cases.

Have I forgotten your favorite command line trick? Then share it in the comments.

I hope you learned something new with this article and if you are interested in more technical articles about Software Development, then consider a follow.

The above is the detailed content of All you need to know on how to install things with pip. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Hot Topics

Java Tutorial
1664
14
PHP Tutorial
1266
29
C# Tutorial
1239
24
Python vs. C  : Applications and Use Cases Compared Python vs. C : Applications and Use Cases Compared Apr 12, 2025 am 12:01 AM

Python is suitable for data science, web development and automation tasks, while C is suitable for system programming, game development and embedded systems. Python is known for its simplicity and powerful ecosystem, while C is known for its high performance and underlying control capabilities.

The 2-Hour Python Plan: A Realistic Approach The 2-Hour Python Plan: A Realistic Approach Apr 11, 2025 am 12:04 AM

You can learn basic programming concepts and skills of Python within 2 hours. 1. Learn variables and data types, 2. Master control flow (conditional statements and loops), 3. Understand the definition and use of functions, 4. Quickly get started with Python programming through simple examples and code snippets.

Python: Games, GUIs, and More Python: Games, GUIs, and More Apr 13, 2025 am 12:14 AM

Python excels in gaming and GUI development. 1) Game development uses Pygame, providing drawing, audio and other functions, which are suitable for creating 2D games. 2) GUI development can choose Tkinter or PyQt. Tkinter is simple and easy to use, PyQt has rich functions and is suitable for professional development.

Python vs. C  : Learning Curves and Ease of Use Python vs. C : Learning Curves and Ease of Use Apr 19, 2025 am 12:20 AM

Python is easier to learn and use, while C is more powerful but complex. 1. Python syntax is concise and suitable for beginners. Dynamic typing and automatic memory management make it easy to use, but may cause runtime errors. 2.C provides low-level control and advanced features, suitable for high-performance applications, but has a high learning threshold and requires manual memory and type safety management.

How Much Python Can You Learn in 2 Hours? How Much Python Can You Learn in 2 Hours? Apr 09, 2025 pm 04:33 PM

You can learn the basics of Python within two hours. 1. Learn variables and data types, 2. Master control structures such as if statements and loops, 3. Understand the definition and use of functions. These will help you start writing simple Python programs.

Python and Time: Making the Most of Your Study Time Python and Time: Making the Most of Your Study Time Apr 14, 2025 am 12:02 AM

To maximize the efficiency of learning Python in a limited time, you can use Python's datetime, time, and schedule modules. 1. The datetime module is used to record and plan learning time. 2. The time module helps to set study and rest time. 3. The schedule module automatically arranges weekly learning tasks.

Python: Exploring Its Primary Applications Python: Exploring Its Primary Applications Apr 10, 2025 am 09:41 AM

Python is widely used in the fields of web development, data science, machine learning, automation and scripting. 1) In web development, Django and Flask frameworks simplify the development process. 2) In the fields of data science and machine learning, NumPy, Pandas, Scikit-learn and TensorFlow libraries provide strong support. 3) In terms of automation and scripting, Python is suitable for tasks such as automated testing and system management.

Python: Automation, Scripting, and Task Management Python: Automation, Scripting, and Task Management Apr 16, 2025 am 12:14 AM

Python excels in automation, scripting, and task management. 1) Automation: File backup is realized through standard libraries such as os and shutil. 2) Script writing: Use the psutil library to monitor system resources. 3) Task management: Use the schedule library to schedule tasks. Python's ease of use and rich library support makes it the preferred tool in these areas.

See all articles