Development Tools | Buy insurance for your project: Python virtual Environment

Source: Internet
Author: User
Tags ming virtual environment virtualenv

After reading the need

9
Minutes

1. What is a virtual environment?

The meaning of virtual environment, like a virtual machine, it can be implemented in different environments, Python dependencies are independent of each other, non-interference. This gives our project a very strong guarantee in a certain degree. Here, I dubbed it "insurance." The whole network is unique.

Let me give you an example.

Let's say we have two items in our computer and they all use the same third party package and everything went well. However, for some reason, project B uses some of the new features of this third-party package for some reason (new versions are available), and if this is so hastily escalated, the impact on project A cannot be evaluated, and this time we need a solution that allows projects A and b to be in two different Python environments. Non-impact.

To facilitate the understanding of the virtual environment, I have listed the following advantages:

    • Make different application development environments Independent

    • Environment upgrade does not affect other applications, nor does it affect the global Python environment

    • Prevents package management clutter and version conflicts from appearing on the system

There are many tools for managing Python versions and environments on the market, here are a few:

    • P: Very simple interactive Python version management tool.

    • Pyenv: A simple Python version management tool.

    • Vex: Commands can be executed in a virtual environment.

    • Virtualenv: A tool for creating a standalone Python environment.

A set of extensions for virtualenvwrapper:virtualenv.

A lot of tools, but personally think the best use, when belong to Virtualenvwrapper, recommend everyone also use.

2.virtualenv

Because Virtualenvwrapper is a set of extensions for VIRTUALENV, you must first install virtualenv if you want to use Virtualenvwrapper.

Installation

pip install virtualenv# 检查版本virtualenv --version

Because Virtualenv creates a virtual environment, it is created under the current environment. So we're going to prepare a directory that is dedicated to hosting virtual environments. (The following operation in Linux in the completion, Windows relatively simple, please do it yourself, have not understand please QQ contact me.) )

Create

Prepare the directory and make the Mkdir-p/home/wangbm/envs$ CD!$# Create the virtual environment (by default Python version) # Execute, there will be a my_env01 directory under the current directory $ virtualenv my_env01# You can also specify version $ virtualenv-p/usr/bin/python2.7 my_env01$ virtualenv-p/usr/bin/python3.6 my_env02# You must think it's a hassle to specify a version every time? # under Linux, you can write this option into the environment variable $ echo "Export virtualenvwrapper_python=/usr/bin/python2.7" >> ~/.BASHRC

Enter/exit

$ cd /home/wangbm/Envs# 进入$ source my_env01/bin/activate# 退出$ deactivate

Delete the virtual environment , just delete the corresponding folder on the line. Does not affect global Python and other environments.

$ cd /home/wangbm/Envs$ rm -rf my_env01

Note: A virtual environment is created that does not contain a third-party package for the native Global environment, which guarantees a clean new virtual environment.

If you need to use the same third-party package as the global environment. You can use the following methods:

# #3. Virtualenvwrapper
Although the virtualenv has been quite useful, but the function is not perfect.

You may also find that to get into a virtual environment, you have to keep in mind the virtual environment directory that you set up before, and if you have to install the environment in a fixed directory every time you follow the rules, it's fine. But in many cases, people can be lazy, there may be a lot of virtual environment scattered throughout the system, you will probably forget their name or location.

Also, the VIRTUALENV switch environment takes two steps, exit---enter. Not easy enough.

In order to solve these two problems, Virtualenvwrapper was born.

Installation

# 安装 - Linuxpip install virtualenvwrapper# 安装 - Windowspip install virtualenvwrapper-win

Configuration find the location of the virtualenvwrapper.sh file first

find / -name virtualenvwrapper.sh# /usr/bin/virtualenvwrapper.sh

Added in ~/.BASHRC file

export WORKON_HOME=$HOME/.virtualenvsexport PROJECT_HOME=$HOME/workspaceexport VIRTUALENVWRAPPER_SCRIPT=/usr/bin/virtualenvwrapper.shsource /usr/bin/virtualenvwrapper.sh
Actual Demo

Next, let's take a look at how we use our virtual environment in our development.

We usually use a few of the following scenarios

    • In interactive

    • In Pycharm

    • In engineering

Next, I'll show you.

In interactive

In contrast, the global environment and the virtual environment are different, the global environment has the requests package, and the virtual environment is not installed. When we typed Workon my_env01, we had a MY_ENV01 logo in front of us, indicating that we were already in a virtual environment. All subsequent operations will be performed in a virtual environment.

In the project

All of our projects have an entry file that is carefully observed, and the first line can specify the Python interpreter.

If we are going to run this project in a virtual environment, just change the file header.

Now I still take, import requests as an example, to show whether it is running in a virtual environment, if it is, then the same as above, will error.

File contents:

#!/root/.virtualenvs/my_env01/bin/pythonimport requestsprint "ok"

Before running, be aware of adding execute permissions.

$ chmod +x ming.py

All right. To execute.

$ ./ming.py

The discovery, as expected, really made an error. Indicates that the virtual environment we have specified is effective.

In Pycharm
Click File-settings-project-interpreter

Click on the Pinion. Click Add and follow the prompts to add a virtual environment. Then click OK to use this virtual environment, then the project will be running in this virtual environment.

All right! The above is the full content of this issue.

After you finish this chapter, go ahead and buy a "insurance" for your project.

Development Tools | Buy insurance for your project: Python virtual Environment

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.