Home > Article > Backend Development > How to find packages installed by python
How python looks for packages
Related recommendations: "python video"
Now There is probably not only one Python on your computer, but also more virtual environments. When installing the package, you accidentally forget to pay attention to the path of the installation package. First, let’s solve the problem of finding a bag. The answer to this question is very simple, but many people don’t know this principle. If the path of your Python interpreter is
Current working directory (return result of pwd command)
If you are using the default Python on Linux,
Several useful functions
sys.executable The currently used Python interpreter path
sys.path The search path list of the current package
sys.prefix Currently used
Example:
>>> import sys >>> sys.executable'/home/frostming/.pyenv/versions/3.7.2/bin/python' >>> sys.path ['', '/home/frostming/.pyenv/versions/3.7.2/lib/python37.zip', '/home/frostming/.pyenv/versions/3.7.2/lib/python3.7', '/home/frostming/.pyenv/versions/3.7.2/lib/python3.7/lib-dynload', '/home/frostming/.local/lib/python3.7/site-packages', '/mnt/d/Workspace/pipenv', '/home/frostming/.pyenv/versions/3.7.2/lib/python3.7/site-packages'] >>> sys.prefix'/home/frostming/.pyenv/versions/3.7.2'
Use environment variables to add the search path
If your If the path of the package does not exist in the search path list listed above, you can add the path to the PYTHONPATH environment variable and separate multiple paths with: (for Windows;).
But be careful to avoid adding the paths of packages of different Python versions to PYTHONPATH, such as PYTHONPATH=/home/frostming/.local/lib/python2.7/site-packages, because the paths in PYTHONPATH are Prioritizes the default search path, which may cause compatibility issues if using Python 3.
By the way, PATH is the search path used to find executable programs. If you run the command my_cmd in the terminal, the system will scan the paths in PATH in order to see if my_cmd exists in this path, so if If it says that the program cannot be found or the command cannot be recognized, then you need to check whether the path has been added to PATH.
How Python installs packages
Nowadays, pip is basically used to install Python packages. Even if you use pipenv or poetry, the bottom layer is still pip, which is always applicable. . If you have not installed pip, please refer here. If you have installed it and still cannot use the pip command, please refer to the previous section.
There are two ways to run pip:
pip ... python -m pip ...
The first way and the second way are similar, the difference is that the Python interpreter used in the first way is to write In pip, generally, if your pip path is
Then, without adding any custom configuration, using pip to install the package will automatically install it under
Options to change the installation location in pip
--prefix PATH, replace
Virtual environment
The virtual environment is to isolate the dependency packages of different projects and install them in different paths to prevent dependency conflicts. After understanding how Python installs packages, it is not difficult to understand the principles of virtual environments (virtualenv, venv modules). In fact, running virtualenv myenv will copy a new Python interpreter to myenv/bin, and create directories such as myenv/lib, myenv/lib/pythonX.Y/site-packages (the venv module is not used for copying, but the results are basically Same). After executing source myenv/bin/activate, myenv/bin will be inserted in front of PATH, so that the copied Python interpreter will be searched first. In this way, when installing the package later,
Summarize
You can see here that the most important thing about package path search is the
Now back to the three questions at the beginning, will everyone solve them? Write your troubleshooting steps or solutions in the comment area.
The examples in this article all use Unix path conventions. If it is a Windows system, appropriate changes should be made. For example,
The above is the detailed content of How to find packages installed by python. For more information, please follow other related articles on the PHP Chinese website!