Modern Python Projects Transcripts
Chapter: Python versions and packages
Lecture: Isolate global packages with pipx

Login or purchase this course to watch this video and the rest of the course contents.
0:00 So far, we solve the problem of how to install different Python versions on our computer and how to separate dependencies,
0:08 in our project. However, there are some Python packages that you would probably like to use globally on your computer.
0:15 For example, there are some code linters like Flake 8 and pylint, or code formatters like Black.
0:21 I will talk more about those tools in the next chapters, or maybe even you want to install the virtualenvwrapper that we use in the
0:28 previous lessons. We wont to use those Python packages across all our projects or even outside of any project. For example,
0:37 we would use virtualenvwrapper to first, create a virtual environment before we start coding. Or we could use black to format,
0:44 some Random Python script. There is no point in installing those global packages inside of a virtual environment because then to actually use it.
0:53 You would always have to first activate the virtual environment, then run this tool, and then they activate this virtual environment.
1:01 I mean, you can do this, but it's a lot of typing, and generally it's a waste of your time,
1:07 a common way to install a Python package globally is to just run pip install outside of a virtual environment. This will work fine at the beginning.
1:15 But the more global packages you install, the bigger is the chance that some of their dependencies will conflict with each other.
1:23 For example, black will install version 1 of some library, but Flake 8 will require version 2 of this library, so it will reinstall it.
1:31 And suddenly black is no longer working and you have a mess. It's the same situation when we try to install django 2 and django 3 in the
1:40 previous lessons. This problem can be solved with a tool called pip X, so pipx installed spied on packages in separate environment.
1:50 But at the same time, those packages act as if they were installed globally. You don't have to activate any virtual environment to use them.
2:00 You can install pipx with pip, so let's run pip install pipx.
2:07 After you install pipx. Make sure you check the installation instruction from the documentation because there is one more thing that you have to do.
2:15 We have to run 'pipx ensurepath' command. You want to have auto-completion in your shell. You can also run this pipx completions command.
2:25 It will show you what code do you have to add to your bash or zshell or any other shell to make sure that auto-completion is working.
2:33 And also don't forget to restart your shell or start a new terminal for the path
2:38 changes to take effect. So let's start the new zshell session and to see if pipx correctly installed. Let's just run pipx without any command.
2:47 Yep. If you get this list of commands, it means everything is ready to use.

Talk Python's Mastodon Michael Kennedy's Mastodon