Khóa tập tin python

Là một lập trình viên chuyên nghiệp Python, việc sử dụng thành môi trường thiết lập trình "ảo" gần như là bắt buộc. Môi trường "ảo" trong Python được thiết lập như thế nào?

Ghi chú. Tôi xin phép viết tắt VE instead for from Virtual environment andtạm dừng dịch nghĩa từ khóa trên sang tiếng Việt là môi trường "ảo" để có thể giữ nguyên nghĩa của từ khóa
Bài viết này được tôi thực hiện trên Windows vì các bài viết hướng dẫn về VE trên Linux đã hơi nhiều rồi. Và các user sử dụng Linux thì thuộc thành phần Expert-user rồi nên chắc. không cần hướng dẫn nhiều người cũng có thể làm được

1. Giới thiệu Môi trường ảo [VE] trong Python

Là một trình lập trình viên Python, bạn không thể chỉ làm mãi một dự án với một số thư viện/mô-đun/khung được cài đặt trực tiếp vào thư viện gốc. Bạn phải luôn sẵn sàng với công việc đầu tuần mã Flask-API trên nền tảng Python 3. 6. x; . 7. x; . 9. 0 vừa mới phát hành, bạn muốn thử nghiệm một số tính năng mới được công bố; . 7 nữa chứ
Mỗi dự án lại có một loạt các thư viện khác nhau, Flask dự án A used library Flask 0. 12, project Flask B dùng lại thư viện Flask 1. 02; . 2, 3. 0,
Bạn chỉ có một chiếc máy tính xách tay mà với mỗi dự án như trên bạn không thể cài đặt chung tất cả trên thư mục cài đặt gốc của Python được. Chẳng hạn, mỗi dự án sẽ cài đặt lại một bản Python sang một thư mục khác và thực hiện khởi động tạo môi trường thông tin theo một cách thủ công?

Chớp bắt lấy theo yêu cầu của các thành viên lập trình, "ông chú Python" - Mr Guido và các cộng sự đã cho ra đời một công cụ "chất" để hỗ trợ các thành viên lập trình được khám phá thoải mái thoải mái với Python là Virtual

Virtual Environment dịch nôm na là môi trường ảo. Cũng giống như máy ảo [Máy ảo], Môi trường ảo thiết lập môi trường ảo, cho phép bạn thoải mái thực hiện "vọc" [cài đặt rồi xóa, cài đặt các phiên bản khác nhau] lung tung với các gói của Python

Lợi ích của việc sử dụng VE

Trên máy tính của tôi đang cài đặt phiên bản bài hát 3 của Python là Python 2. 7, 3. 6, 3. 8, 3. 9. Do thù cụ thể của từng dự án sử dụng lại các gói khác nhau nên mỗi dự án tôi sẽ tạo cho nó một VE. Tại mỗi VE, tôi cảm thấy thoải mái khi cài đặt các thư viện cần sử dụng mà không cần quan tâm đến việc cài đặt thư viện này sẽ ảnh hưởng đến việc khởi chạy các dự án khác nhau vì mỗi VE là một môi trường kỹ thuật hoàn toàn độc lập

Ví dụ minh họa.  

Ngoài lợi ích trên, VE còn cung cấp chức năng cho phép xuất chính xác các gói đang sử dụng trong VE [chính xác đến phiên bản tận hưởng bao nhiêu], tệp cấu hình môi trường này thường được đặt tên là các yêu cầu. txt]
Với mỗi dự án, khi đưa lên git hoặc các SVN khác, tôi sẽ phải đính kèm thêm tệp cấu hình môi trường ảo 'yêu cầu. txt' this into
Khi cần xây dựng VE cho dự án ở một môi trường làm việc khác, tôi sẽ thực hiện các yêu cầu về tệp nhập. txt to VE is being. Việc nhập vào cũng đơn giản như xuất vậy, hệ thống sẽ tự động thực hiện sắp xếp các thư viện theo thứ tự để thực hiện cài đặt vào VE
Thật là tiện lợi không?

2. Cách xây dựng và sử dụng VE

Theo thời gian và nhu cầu công việc, Python cung cấp nhiều cách thức để thực hiện việc tạo ra các VE, dưới đây, tôi sẽ giới thiệu với các bạn một số cách mà thường được nhiều thành viên lập trình sử dụng.

2. 1. Sử dụng công cụ virtualenv

Virtualenv gần như là một công cụ thường gặp nhất với các thành viên lập trình Python khi muốn thiết lập một VE [https. //ảoenv. pypa. io/vi/mới nhất/]
Trước khi muốn sử dụng nó, chúng ta sẽ phải thực hiện cài đặt ra. Với thiết bị đầu cuối mặc định trên máy của bạn, bạn chỉ cần nhập dòng lệnh.

PS C:\Users\quangvinh1986> E:
PS E:\> cd E:\code_learn\VESamples
PS E:\code_learn\VESamples> virtualenv hr_api_django2_env
created virtual environment CPython3.8.2.final.0-64 in 6161ms
  creator CPython3Windows[dest=E:\code_learn\VESamples\hr_api_django2_env, clear=False, global=False]
  seeder FromAppData[download=False, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=C:\Users\quangvinh1986\AppData\Local\pypa\virtualenv]
    added seed packages: pip==20.2.3, setuptools==50.3.0, wheel==0.35.1
  activators BashActivator,BatchActivator,FishActivator,PowerShellActivator,PythonActivator,XonshActivator
PS E:\code_learn\VESamples> ls


    Directory: E:\code_learn\VESamples


Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d-----         10/9/2020   9:52 PM                hr_api_django2_env
2

Kết quả sẽ như dưới đây

 PS C:\Users\quangvinh1986> pip install virtualenv
Collecting virtualenv
  Downloading //files.pythonhosted.org/packages/be/98/8c548c1b11391695c9de2660a289bedfb7c2784651e9f93449159ca8bf81/virtualenv-20.0.33-py2.py3-none-any.whl [4.9MB]
     |████████████████████████████████| 4.9MB 3.3MB/s
Collecting distlib=0.3.1 [from virtualenv]
  Downloading //files.pythonhosted.org/packages/f5/0a/490fa011d699bb5a5f3a0cf57de82237f52a6db9d40f33c53b2736c9a1f9/distlib-0.3.1-py2.py3-none-any.whl [335kB]
     |████████████████████████████████| 337kB 1.1MB/s
Collecting filelock=3.0.0 [from virtualenv]
  Downloading //files.pythonhosted.org/packages/93/83/71a2ee6158bb9f39a90c0dea1637f81d5eef866e188e1971a1b1ab01a35a/filelock-3.0.12-py3-none-any.whl
Requirement already satisfied: six=1.9.0 in c:\program files\python38\lib\site-packages [from virtualenv] [1.15.0]
Collecting appdirs=1.4.3 [from virtualenv]
  Downloading //files.pythonhosted.org/packages/3b/00/2344469e2084fb287c2e0b57b72910309874c3245463acd6cf5e3db69324/appdirs-1.4.4-py2.py3-none-any.whl
Installing collected packages: distlib, filelock, appdirs, virtualenv
Successfully installed appdirs-1.4.4 distlib-0.3.1 filelock-3.0.12 virtualenv-20.0.33

Sau khi cài đặt, hãy kiểm tra phiên bản của virtualenv

virtualenv 20.0.33 from c:\program files\python38\lib\site-packages\virtualenv\__init__.py

Sau khi cài đặt thư viện, hãy thực hiện di chuyển đến vị trí muốn đặt VE. Tại vị trí này, chúng tôi thực hiện cài đặt VE bằng câu lệnh.

PS C:\Users\quangvinh1986> E:
PS E:\> cd E:\code_learn\VESamples
PS E:\code_learn\VESamples> virtualenv hr_api_django2_env
created virtual environment CPython3.8.2.final.0-64 in 6161ms
  creator CPython3Windows[dest=E:\code_learn\VESamples\hr_api_django2_env, clear=False, global=False]
  seeder FromAppData[download=False, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=C:\Users\quangvinh1986\AppData\Local\pypa\virtualenv]
    added seed packages: pip==20.2.3, setuptools==50.3.0, wheel==0.35.1
  activators BashActivator,BatchActivator,FishActivator,PowerShellActivator,PythonActivator,XonshActivator
PS E:\code_learn\VESamples> ls


    Directory: E:\code_learn\VESamples


Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d-----         10/9/2020   9:52 PM                hr_api_django2_env
3. Trong đó hr_api_django2_env là tên của VE mà chúng ta muốn đặt. Thông thường tôi có thói quen đặt tên theo dự án và khung chủ đạo hoặc gói chủ đạo, với hậu ngữ là _env [ở đây là cách đặt tên để dễ nhớ với tôi, với các bạn thì theo tùy chọn của mỗi người].  

PS C:\Users\quangvinh1986> E:
PS E:\> cd E:\code_learn\VESamples
PS E:\code_learn\VESamples> virtualenv hr_api_django2_env
created virtual environment CPython3.8.2.final.0-64 in 6161ms
  creator CPython3Windows[dest=E:\code_learn\VESamples\hr_api_django2_env, clear=False, global=False]
  seeder FromAppData[download=False, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=C:\Users\quangvinh1986\AppData\Local\pypa\virtualenv]
    added seed packages: pip==20.2.3, setuptools==50.3.0, wheel==0.35.1
  activators BashActivator,BatchActivator,FishActivator,PowerShellActivator,PythonActivator,XonshActivator
PS E:\code_learn\VESamples> ls


    Directory: E:\code_learn\VESamples


Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d-----         10/9/2020   9:52 PM                hr_api_django2_env

Như vậy là chúng ta đã khởi động được VE cho dự án hr_api dự kiến ​​sẽ sử dụng django2

Chúng ta cùng xem bên trong thư mục VE có chứa những gì nhé

PS E:\code_learn\VESamples> ls -l .\hr_api_django2_env\


    Directory: E:\code_learn\VESamples\hr_api_django2_env


Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d-----         10/9/2020   9:52 PM                Lib
d-----         10/9/2020   9:52 PM                Scripts
-a----         10/9/2020   9:52 PM             42 .gitignore
-a----         10/9/2020   9:52 PM            293 pyvenv.cfg

Bên trong thư mục VE có chứa 2 thư mục con Lib và Scripts, kèm theo 1 file config cho môi trường

PS E:\code_learn\VESamples\hr_api_django2_env> ls -l .\Lib\


    Directory: E:\code_learn\VESamples\hr_api_django2_env\Lib


Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d-----         10/9/2020   9:52 PM                site-packages

Thư mục Lib chứa các gói thư mục site, như vậy đây sẽ là nơi chứa các gói mà chúng ta sẽ cài đặt vào VE

PS E:\code_learn\VESamples\hr_api_django2_env> ls -l .\Lib\site-packages\


    Directory: E:\code_learn\VESamples\hr_api_django2_env\Lib\site-packages


Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d-----         10/9/2020   9:52 PM                pip
d-----         10/9/2020   9:52 PM                pip-20.2.3.dist-info
d-----         10/9/2020   9:52 PM                pkg_resources
d-----         10/9/2020   9:52 PM                setuptools
d-----         10/9/2020   9:52 PM                setuptools-50.3.0.dist-info
d-----         10/9/2020   9:52 PM                wheel
d-----         10/9/2020   9:52 PM                wheel-0.35.1.dist-info
d-----         10/9/2020   9:52 PM                _distutils_hack
-a----         10/9/2020   9:52 PM            152 distutils-precedence.pth
-a----         10/9/2020   9:52 PM            126 easy_install.py
-a----         10/9/2020   9:52 PM              0 pip-20.2.3.virtualenv
-a----         10/9/2020   9:52 PM              0 setuptools-50.3.0.virtualenv
-a----         10/9/2020   9:52 PM              0 wheel-0.35.1.virtualenv
-a----         10/9/2020   9:52 PM             18 _virtualenv.pth
-a----         10/9/2020   9:52 PM           5792 _virtualenv.py

Hiện tại thì thư mục này trên VE đồng bộ với thư mục site-packages của Python3. 8 trên máy của tôi [tôi thường cài đặt gói vào từng VE riêng biệt], nếu lỡ máy của bạn đã cài đặt một số gói sẵn rồi, bạn không muốn VE sẽ kéo các gói đó vào thì khi thực hiện khởi động VE

Ví dụ

PS C:\Users\quangvinh1986> E:
PS E:\> cd E:\code_learn\VESamples
PS E:\code_learn\VESamples> virtualenv hr_api_django2_env
created virtual environment CPython3.8.2.final.0-64 in 6161ms
  creator CPython3Windows[dest=E:\code_learn\VESamples\hr_api_django2_env, clear=False, global=False]
  seeder FromAppData[download=False, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=C:\Users\quangvinh1986\AppData\Local\pypa\virtualenv]
    added seed packages: pip==20.2.3, setuptools==50.3.0, wheel==0.35.1
  activators BashActivator,BatchActivator,FishActivator,PowerShellActivator,PythonActivator,XonshActivator
PS E:\code_learn\VESamples> ls


    Directory: E:\code_learn\VESamples


Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d-----         10/9/2020   9:52 PM                hr_api_django2_env
5

Tiếp tục khám phá xem thư mục Scripts có gì nhé

PS E:\code_learn\VESamples\hr_api_django2_env> ls -l .\Scripts\


    Directory: E:\code_learn\VESamples\hr_api_django2_env\Scripts


Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----         10/9/2020   9:52 PM           2235 activate
-a----         10/9/2020   9:52 PM           1035 activate.bat
-a----         10/9/2020   9:52 PM           3085 activate.fish
-a----         10/9/2020   9:52 PM           1755 activate.ps1
-a----         10/9/2020   9:52 PM           1176 activate.xsh
-a----         10/9/2020   9:52 PM           1193 activate_this.py
-a----         10/9/2020   9:52 PM            510 deactivate.bat
-a----         10/9/2020   9:52 PM         106381 easy_install-3.8.exe
-a----         10/9/2020   9:52 PM         106381 easy_install.exe
-a----         10/9/2020   9:52 PM         106381 easy_install3.8.exe
-a----         10/9/2020   9:52 PM         106381 easy_install3.exe
-a---l         10/9/2020   9:52 PM              0 libcrypto-1_1.dll
-a---l         10/9/2020   9:52 PM              0 libffi-7.dll
-a---l         10/9/2020   9:52 PM              0 libssl-1_1.dll
-a----         10/9/2020   9:52 PM         106372 pip-3.8.exe
-a----         10/9/2020   9:52 PM         106372 pip.exe
-a----         10/9/2020   9:52 PM         106372 pip3.8.exe
-a----         10/9/2020   9:52 PM         106372 pip3.exe
-a----         10/9/2020   9:52 PM             24 pydoc.bat
-a---l         10/9/2020   9:52 PM              0 pyexpat.pyd
-a---l         10/9/2020   9:52 PM              0 python.exe
-a---l         10/9/2020   9:52 PM              0 python3.dll
......


Thì ra thư mục này chứa các tệp khởi động của Python dưới dạng pip. exe, pip3. exe, trăn. exe,
Trong thư mục Scripts có 2 file quan trọng được kích hoạt. bat và hủy kích hoạt. bat để thực hiện khởi động và tắt VE của bạn

Khởi động VE
Để khởi động VE, từ CMD, chúng ta gọi đến file activate. con dơi

E:\code_learn\VESamples\hr_api_django2_env>Scripts\activate.bat

[hr_api_django2_env] E:\code_learn\VESamples\hr_api_django2_env>

Sau khi thực hiện active thành công, phía trên đầu của đường dẫn sẽ có tên của VE ở trong dấu [hr_api_django2_env]


Thực hiện cài đặt một gói vào VE
Ví dụ tôi thực hiện cài đặt Django 2. 2 to VE this, the command will be

PS C:\Users\quangvinh1986> E:
PS E:\> cd E:\code_learn\VESamples
PS E:\code_learn\VESamples> virtualenv hr_api_django2_env
created virtual environment CPython3.8.2.final.0-64 in 6161ms
  creator CPython3Windows[dest=E:\code_learn\VESamples\hr_api_django2_env, clear=False, global=False]
  seeder FromAppData[download=False, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=C:\Users\quangvinh1986\AppData\Local\pypa\virtualenv]
    added seed packages: pip==20.2.3, setuptools==50.3.0, wheel==0.35.1
  activators BashActivator,BatchActivator,FishActivator,PowerShellActivator,PythonActivator,XonshActivator
PS E:\code_learn\VESamples> ls


    Directory: E:\code_learn\VESamples


Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d-----         10/9/2020   9:52 PM                hr_api_django2_env
6

Phần này các bạn cần lưu ý. Nếu không có tham số =2. 2. 0 phía sau thì hệ thống sẽ tự động tìm thư viện phát hành bản mới nhất trên pypi [The Python Package Index], tại thời điểm này thì Django mới nhất là phiên bản 3. 1. 2 [tháng 10/2020]

[hr_api_django2_env] E:\code_learn\VESamples\hr_api_django2_env>pip install django==2.2.0
Collecting django==2.2.0
  Downloading Django-2.2-py3-none-any.whl [7.4 MB]
     |████████████████████████████████| 7.4 MB 1.1 MB/s
Collecting sqlparse
  Downloading sqlparse-0.4.1-py3-none-any.whl [42 kB]
     |████████████████████████████████| 42 kB 1.7 MB/s
Collecting pytz
  Downloading pytz-2020.1-py2.py3-none-any.whl [510 kB]
     |████████████████████████████████| 510 kB 3.3 MB/s
Installing collected packages: sqlparse, pytz, django
Successfully installed django-2.2 pytz-2020.1 sqlparse-0.4.1

Sau khi cài đặt xong, chúng ta kiểm tra xem VE của chúng ta đã cài đặt thành công gói django2 chưa. 2. 0 chưa bằng câu lệnh pip -- freeze [hoặc pip freeze]

[hr_api_django2_env] E:\code_learn\VESamples\hr_api_django2_env>pip -- freeze
Django==2.2
pytz==2020.1
sqlparse==0.4.1

With results display as on, VE of them ta has been phiên bản Django2. 2

Xuất thư viện

Để thực hiện xuất các gói trong VE ra và để đưa đến phần nhập trong các VE khác, chúng ta sẽ sử dụng cú pháp.

PS C:\Users\quangvinh1986> E:
PS E:\> cd E:\code_learn\VESamples
PS E:\code_learn\VESamples> virtualenv hr_api_django2_env
created virtual environment CPython3.8.2.final.0-64 in 6161ms
  creator CPython3Windows[dest=E:\code_learn\VESamples\hr_api_django2_env, clear=False, global=False]
  seeder FromAppData[download=False, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=C:\Users\quangvinh1986\AppData\Local\pypa\virtualenv]
    added seed packages: pip==20.2.3, setuptools==50.3.0, wheel==0.35.1
  activators BashActivator,BatchActivator,FishActivator,PowerShellActivator,PythonActivator,XonshActivator
PS E:\code_learn\VESamples> ls


    Directory: E:\code_learn\VESamples


Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d-----         10/9/2020   9:52 PM                hr_api_django2_env
7

virtualenv 20.0.33 from c:\program files\python38\lib\site-packages\virtualenv\__init__.py
0

Yêu cầu tệp. txt sẽ được tạo ra tại thư mục hiện tại mà chúng ta đang đứng. Mở tệp yêu cầu. txt, chúng ta sẽ có nội dung

Nhập các gói vào VE

Giờ chúng ta sẽ xóa gói Django2. 2 sau đó thực hiện nhập lại vào VE bằng lệnh

PS C:\Users\quangvinh1986> E:
PS E:\> cd E:\code_learn\VESamples
PS E:\code_learn\VESamples> virtualenv hr_api_django2_env
created virtual environment CPython3.8.2.final.0-64 in 6161ms
  creator CPython3Windows[dest=E:\code_learn\VESamples\hr_api_django2_env, clear=False, global=False]
  seeder FromAppData[download=False, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=C:\Users\quangvinh1986\AppData\Local\pypa\virtualenv]
    added seed packages: pip==20.2.3, setuptools==50.3.0, wheel==0.35.1
  activators BashActivator,BatchActivator,FishActivator,PowerShellActivator,PythonActivator,XonshActivator
PS E:\code_learn\VESamples> ls


    Directory: E:\code_learn\VESamples


Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d-----         10/9/2020   9:52 PM                hr_api_django2_env
8

virtualenv 20.0.33 from c:\program files\python38\lib\site-packages\virtualenv\__init__.py
1

Như thế này đã bị xóa thành công thư viện Django2. 2 in VE

virtualenv 20.0.33 from c:\program files\python38\lib\site-packages\virtualenv\__init__.py
2

Khi thực hiện cài đặt các gói từ tệp yêu cầu. txt, nếu các gói đã có trong VE, thì pip sẽ bỏ qua như ví dụ trên gói pytz==2020. 1, sqlparse==0. 4. 1

Start start VE

Để ngắt VE, chúng ta thực hiện đứng từ một thư mục nào đó, gọi vào tập tin Scripts\deactivate. con dơi

virtualenv 20.0.33 from c:\program files\python38\lib\site-packages\virtualenv\__init__.py
3

Do đã thoát khỏi VE nên dòng thông tin [hr_api_django2_env] ở đầu thư mục cũng bị mất biến

Trước đây, tôi cũng thường xuyên sử dụng virtualenv do Python2 time. 7 công cụ này gần như là mạnh nhất để xây dựng các VE. Nhược điểm của nó là phải cài đặt thêm gói gói virtualenv, nếu máy tính của bạn có nhiều phiên bản Python và bạn liên tục phải chuyển đổi qua lại giữa các dự án thuộc các phiên bản khác nhau thì việc sử dụng virtualenv không phải là phương án tối thiểu. . Reason
- Khi muốn cài đặt thư viện virtualenv, bạn phải di chuyển thư mục trên thiết bị đầu cuối đến đúng vị trí chứa pip của phiên bản Python mà bạn phải sử dụng để gọi lệnh pip install virtualenv
- Khi muốn tạo mới một VE mà không phải trên phiên bản Python mặc định, bạn cũng phải di chuyển đến vị trí chứa python. exe [với windows] và thực hiện lệnh tạo VE

virtualenv 20.0.33 from c:\program files\python38\lib\site-packages\virtualenv\__init__.py
4_______0_______9, from Python3 version. 5, has been a public "main master" in the site-packages of Python, that is the
PS E:\code_learn\VESamples> ls -l .\hr_api_django2_env\


    Directory: E:\code_learn\VESamples\hr_api_django2_env


Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d-----         10/9/2020   9:52 PM                Lib
d-----         10/9/2020   9:52 PM                Scripts
-a----         10/9/2020   9:52 PM             42 .gitignore
-a----         10/9/2020   9:52 PM            293 pyvenv.cfg
0 [https. // tài liệu. con trăn. org/3/library/venv. html]. Trình lập trình viên Python không cần phải cài đặt thêm gói nào khác cũng có thể nhanh chóng tạo ra các VE
Tuy nhiên một số máy tính do cài đặt bản Python-minimal nên bị thiếu thư viện, nếu thiếu thì cần cài thêm gói bổ sung. python3-venv [thường gặp trên máy cài đặt hệ điều hành Linux]

Khởi tạo VE

Với bản Python mặc định trên máy tính, chỉ cần gọi lệnh python -m venv path_to_VE

virtualenv 20.0.33 from c:\program files\python38\lib\site-packages\virtualenv\__init__.py
7

Với Python khác với bản mặc định, các tùy chọn tương tự như sử dụng thư viện virtualenv, chỉ khác là bạn sẽ không cần cài đặt gói trước khi sử dụng

virtualenv 20.0.33 from c:\program files\python38\lib\site-packages\virtualenv\__init__.py
8

Sau câu lệnh tạo ra môi trường, không có phản hồi nào được cho là đã tạo thành công nhé. In the directory contains VE.  

virtualenv 20.0.33 from c:\program files\python38\lib\site-packages\virtualenv\__init__.py
9

3. Một số lưu ý

Phía trên tôi đã giới thiệu với các bạn thông tin về VE và 2 phương pháp khởi động môi trường ảo. Phần tiếp theo đây, tôi sẽ giới thiệu với các bạn một số thông tin bổ sung cần lưu ý

3. 1. Tạo lệnh khởi động và ngắt VE trên Linux/MacOS

Trên Windows, các bạn sẽ gọi vào file activate. dơi/hủy kích hoạt. bat để khởi động và ngắt VE. Trên Lunix/MacOS, để làm thư viện và môi trường khác, nên cài đặt VE, khởi động VE bằng lệnh mã nguồn bin/kích hoạt

Ví dụ. Tôi sử dụng Ubuntu-WSL trên máy của tôi để demo nhé.  

PS C:\Users\quangvinh1986> E:
PS E:\> cd E:\code_learn\VESamples
PS E:\code_learn\VESamples> virtualenv hr_api_django2_env
created virtual environment CPython3.8.2.final.0-64 in 6161ms
  creator CPython3Windows[dest=E:\code_learn\VESamples\hr_api_django2_env, clear=False, global=False]
  seeder FromAppData[download=False, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=C:\Users\quangvinh1986\AppData\Local\pypa\virtualenv]
    added seed packages: pip==20.2.3, setuptools==50.3.0, wheel==0.35.1
  activators BashActivator,BatchActivator,FishActivator,PowerShellActivator,PythonActivator,XonshActivator
PS E:\code_learn\VESamples> ls


    Directory: E:\code_learn\VESamples


Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d-----         10/9/2020   9:52 PM                hr_api_django2_env
0

To shutdown VE

PS C:\Users\quangvinh1986> E:
PS E:\> cd E:\code_learn\VESamples
PS E:\code_learn\VESamples> virtualenv hr_api_django2_env
created virtual environment CPython3.8.2.final.0-64 in 6161ms
  creator CPython3Windows[dest=E:\code_learn\VESamples\hr_api_django2_env, clear=False, global=False]
  seeder FromAppData[download=False, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=C:\Users\quangvinh1986\AppData\Local\pypa\virtualenv]
    added seed packages: pip==20.2.3, setuptools==50.3.0, wheel==0.35.1
  activators BashActivator,BatchActivator,FishActivator,PowerShellActivator,PythonActivator,XonshActivator
PS E:\code_learn\VESamples> ls


    Directory: E:\code_learn\VESamples


Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d-----         10/9/2020   9:52 PM                hr_api_django2_env
1

Chỉ khác nhau về việc khởi động và ngắt VE, các hành động khác nhau như xuất/nhập thì trên Windows và Linux/MacOS giống nhau

Chủ Đề