Mô-đun c:\>c:\Python35\python -m venv c:\path\to\myenv1 hỗ trợ tạo “môi trường ảo” nhẹ, mỗi môi trường có bộ gói Python độc lập riêng được cài đặt trong thư mục c:\>c:\Python35\python -m venv c:\path\to\myenv2 của chúng. Một môi trường ảo được tạo bên trên bản cài đặt Python hiện có, được gọi là Python “cơ sở” của môi trường ảo và có thể tùy chọn được tách biệt khỏi các gói trong môi trường cơ sở, vì vậy chỉ những gói được cài đặt rõ ràng trong môi trường ảo mới khả dụng Show Khi được sử dụng từ bên trong môi trường ảo, các công cụ cài đặt phổ biến như pip sẽ cài đặt các gói Python vào môi trường ảo mà không cần phải yêu cầu làm như vậy một cách rõ ràng Xem PEP 405 để biết thêm thông tin cơ bản về môi trường ảo Python Xem thêm Hướng dẫn sử dụng bao bì Python. Tạo và sử dụng môi trường ảo Tính khả dụng . không phải Emscripten, không phải WASI. Mô-đun này không hoạt động hoặc không khả dụng trên nền tảng WebAssembly c:\>c:\Python35\python -m venv c:\path\to\myenv3 và c:\>c:\Python35\python -m venv c:\path\to\myenv0. Xem Nền tảng WebAssugging để biết thêm thông tin. Tạo môi trường ảo¶Việc tạo môi trường ảo được thực hiện bằng cách thực hiện lệnh c:\>c:\Python35\python -m venv c:\path\to\myenv1. python3 -m venv /path/to/new/virtual/environment Chạy lệnh này sẽ tạo thư mục đích (tạo bất kỳ thư mục mẹ nào chưa tồn tại) và đặt tệp c:\>c:\Python35\python -m venv c:\path\to\myenv2 vào đó với khóa c:\>c:\Python35\python -m venv c:\path\to\myenv3 trỏ đến bản cài đặt Python mà lệnh được chạy từ đó (tên chung cho thư mục đích là . Nó cũng tạo một thư mục con c:\>c:\Python35\python -m venv c:\path\to\myenv5 (hoặc c:\>c:\Python35\python -m venv c:\path\to\myenv6 trên Windows) chứa một bản sao/liên kết tượng trưng của mã nhị phân/nhị phân Python (phù hợp với nền tảng hoặc đối số được sử dụng tại thời điểm tạo môi trường). Nó cũng tạo ra một thư mục con (ban đầu trống) c:\>c:\Python35\python -m venv c:\path\to\myenv7 (trên Windows, đây là c:\>c:\Python35\python -m venv c:\path\to\myenv8). Nếu một thư mục hiện có được chỉ định, nó sẽ được sử dụng lại Không dùng nữa kể từ phiên bản 3. 6. ______09 là công cụ được khuyên dùng để tạo môi trường ảo cho Python 3. 3 và 3. 4 và không được dùng trong Python 3. 6 . Đã thay đổi trong phiên bản 3. 5. Việc sử dụng c:\>c:\Python35\python -m venv c:\path\to\myenv1 hiện được khuyến nghị để tạo môi trường ảo. Trên Windows, gọi lệnh c:\>c:\Python35\python -m venv c:\path\to\myenv1 như sau c:\>c:\Python35\python -m venv c:\path\to\myenv Hoặc, nếu bạn đã định cấu hình các biến python3 -m venv /path/to/new/virtual/environment12 và python3 -m venv /path/to/new/virtual/environment13 cho cài đặt Python của mình. python3 -m venv /path/to/new/virtual/environment1 Lệnh, nếu chạy với python3 -m venv /path/to/new/virtual/environment14, sẽ hiển thị các tùy chọn khả dụng python3 -m venv /path/to/new/virtual/environment5 Đã thay đổi trong phiên bản 3. 9. Thêm tùy chọn python3 -m venv /path/to/new/virtual/environment15 để nâng cấp pip + setuptools lên phiên bản mới nhất trên PyPI Đã thay đổi trong phiên bản 3. 4. Cài đặt pip theo mặc định, thêm tùy chọn python3 -m venv /path/to/new/virtual/environment16 và python3 -m venv /path/to/new/virtual/environment17 Đã thay đổi trong phiên bản 3. 4. Trong các phiên bản trước, nếu thư mục đích đã tồn tại thì sẽ xảy ra lỗi, trừ khi tùy chọn python3 -m venv /path/to/new/virtual/environment18 hoặc python3 -m venv /path/to/new/virtual/environment19 được cung cấp. Ghi chú Mặc dù các liên kết tượng trưng được hỗ trợ trên Windows nhưng chúng không được khuyến nghị. Đặc biệt lưu ý rằng nhấp đúp vào python3 -m venv /path/to/new/virtual/environment50 trong File Explorer sẽ háo hức giải quyết liên kết tượng trưng và bỏ qua môi trường ảo Ghi chú Trên Microsoft Windows, có thể phải bật tập lệnh python3 -m venv /path/to/new/virtual/environment51 bằng cách đặt chính sách thực thi cho người dùng. Bạn có thể thực hiện việc này bằng cách ban hành lệnh PowerShell sau PSC. > Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser Xem Giới thiệu về chính sách thực thi để biết thêm thông tin Tệp c:\>c:\Python35\python -m venv c:\path\to\myenv2 được tạo cũng bao gồm khóa python3 -m venv /path/to/new/virtual/environment53, được đặt thành python3 -m venv /path/to/new/virtual/environment54 nếu c:\>c:\Python35\python -m venv c:\path\to\myenv1 được chạy với tùy chọn python3 -m venv /path/to/new/virtual/environment56, nếu không thì là python3 -m venv /path/to/new/virtual/environment57 Trừ khi tùy chọn python3 -m venv /path/to/new/virtual/environment16 được đưa ra, python3 -m venv /path/to/new/virtual/environment59 sẽ được gọi để bootstrap c:\>c:\Python35\python -m venv c:\path\to\myenv00 vào môi trường ảo Có thể cung cấp nhiều đường dẫn cho c:\>c:\Python35\python -m venv c:\path\to\myenv1, trong trường hợp đó, một môi trường ảo giống hệt nhau sẽ được tạo, theo các tùy chọn đã cho, tại mỗi đường dẫn được cung cấp Cách hoạt động của venv¶Khi trình thông dịch Python đang chạy từ môi trường ảo, c:\>c:\Python35\python -m venv c:\path\to\myenv02 và c:\>c:\Python35\python -m venv c:\path\to\myenv03 trỏ đến các thư mục của môi trường ảo, trong khi đó, c:\>c:\Python35\python -m venv c:\path\to\myenv04 và c:\>c:\Python35\python -m venv c:\path\to\myenv05 trỏ đến các thư mục của Python cơ sở được sử dụng để tạo môi trường. Chỉ cần kiểm tra c:\>c:\Python35\python -m venv c:\path\to\myenv06 để xác định xem trình thông dịch hiện tại có đang chạy từ môi trường ảo hay không Môi trường ảo có thể được "kích hoạt" bằng cách sử dụng tập lệnh trong thư mục nhị phân của nó ( c:\>c:\Python35\python -m venv c:\path\to\myenv5 trên POSIX; c:\>c:\Python35\python -m venv c:\path\to\myenv6 trên Windows). Điều này sẽ thêm thư mục đó vào python3 -m venv /path/to/new/virtual/environment12 của bạn, để chạy. python sẽ gọi trình thông dịch Python của môi trường và bạn có thể chạy các tập lệnh đã cài đặt mà không cần phải sử dụng đường dẫn đầy đủ của chúng. Việc gọi tập lệnh kích hoạt là dành riêng cho nền tảng ( c:\>c:\Python35\python -m venv c:\path\to\myenv90 phải được thay thế bằng đường dẫn đến thư mục chứa môi trường ảo) Nền tảng Vỏ bọc Lệnh kích hoạt môi trường ảo VỊ TRÍ bash/zsh c:\>c:\Python35\python -m venv c:\path\to\myenv91 cá c:\>c:\Python35\python -m venv c:\path\to\myenv92 csh/tcsh c:\>c:\Python35\python -m venv c:\path\to\myenv93 PowerShell c:\>c:\Python35\python -m venv c:\path\to\myenv94 các cửa sổ cmd. người cũ c:\>c:\Python35\python -m venv c:\path\to\myenv95 PowerShell c:\>c:\Python35\python -m venv c:\path\to\myenv96 Mới trong phiên bản 3. 4. . cá và. tập lệnh kích hoạt csh. Mới trong phiên bản 3. 8. Tập lệnh kích hoạt PowerShell được cài đặt trong POSIX để hỗ trợ PowerShell Core. Bạn không nhất thiết phải kích hoạt một môi trường ảo, vì bạn chỉ cần chỉ định đường dẫn đầy đủ đến trình thông dịch Python của môi trường đó khi gọi Python. Hơn nữa, tất cả các tập lệnh được cài đặt trong môi trường sẽ có thể chạy được mà không cần kích hoạt nó Để đạt được điều này, các tập lệnh được cài đặt vào môi trường ảo có một dòng “shebang” trỏ tới trình thông dịch Python của môi trường, i. e. c:\>c:\Python35\python -m venv c:\path\to\myenv97. Điều này có nghĩa là tập lệnh sẽ chạy với trình thông dịch đó bất kể giá trị của python3 -m venv /path/to/new/virtual/environment12 là bao nhiêu. Trên Windows, xử lý dòng “shebang” được hỗ trợ nếu bạn đã cài đặt Python Launcher cho Windows . Do đó, bấm đúp vào tập lệnh đã cài đặt trong cửa sổ Windows Explorer sẽ chạy tập lệnh đó với trình thông dịch chính xác mà không cần kích hoạt môi trường hoặc trên python3 -m venv /path/to/new/virtual/environment12. Khi một môi trường ảo đã được kích hoạt, biến môi trường c:\>c:\Python35\python -m venv c:\path\to\myenv10 được đặt thành đường dẫn của môi trường. Vì không bắt buộc phải kích hoạt rõ ràng môi trường ảo để sử dụng nên không thể dựa vào c:\>c:\Python35\python -m venv c:\path\to\myenv10 để xác định xem môi trường ảo có đang được sử dụng hay không Cảnh báo Vì các tập lệnh được cài đặt trong môi trường không nên mong đợi môi trường được kích hoạt, nên các dòng Shebang của chúng chứa các đường dẫn tuyệt đối đến trình thông dịch của môi trường của chúng. Do đó, các môi trường vốn không di động, trong trường hợp chung. Bạn phải luôn có một phương tiện đơn giản để tạo lại môi trường (ví dụ: nếu bạn có tệp yêu cầu c:\>c:\Python35\python -m venv c:\path\to\myenv12, bạn có thể gọi c:\>c:\Python35\python -m venv c:\path\to\myenv13 bằng cách sử dụng c:\>c:\Python35\python -m venv c:\path\to\myenv00 của môi trường để cài đặt tất cả các gói mà môi trường cần). Nếu vì bất kỳ lý do gì bạn cần di chuyển môi trường đến một vị trí mới, bạn nên tạo lại nó ở vị trí mong muốn và xóa môi trường ở vị trí cũ. Nếu bạn di chuyển một môi trường vì bạn đã di chuyển thư mục mẹ của môi trường đó, thì bạn nên tạo lại môi trường ở vị trí mới. Nếu không, phần mềm được cài đặt vào môi trường có thể không hoạt động như mong đợi Bạn có thể hủy kích hoạt môi trường ảo bằng cách nhập c:\>c:\Python35\python -m venv c:\path\to\myenv15 vào trình bao của mình. Cơ chế chính xác dành riêng cho nền tảng và là một chi tiết triển khai nội bộ (thông thường, một tập lệnh hoặc hàm shell sẽ được sử dụng) API¶Phương thức cấp cao được mô tả ở trên sử dụng API đơn giản cung cấp cơ chế cho người tạo môi trường ảo bên thứ ba để tùy chỉnh việc tạo môi trường theo nhu cầu của họ, lớp c:\>c:\Python35\python -m venv c:\path\to\myenv16lớp venv. EnvBuilder(system_site_packages=Sai, clear=False, symlinks=False, upgrade=False, with_pip=False, prompt=None, upgrade_deps=False)¶ Lớp c:\>c:\Python35\python -m venv c:\path\to\myenv16 chấp nhận các đối số từ khóa sau khi khởi tạo
Đã thay đổi trong phiên bản 3. 4. Đã thêm tham số c:\>c:\Python35\python -m venv c:\path\to\myenv14 Mới trong phiên bản 3. 6. Đã thêm tham số c:\>c:\Python35\python -m venv c:\path\to\myenv17 Mới trong phiên bản 3. 9. Đã thêm tham số c:\>c:\Python35\python -m venv c:\path\to\myenv20 Người tạo công cụ môi trường ảo của bên thứ ba sẽ được tự do sử dụng lớp c:\>c:\Python35\python -m venv c:\path\to\myenv16 được cung cấp làm lớp cơ sở Env-builder được trả về là một đối tượng có phương thức, c:\>c:\Python35\python -m venv c:\path\to\myenv25tạo(env_dir) ¶ Tạo một môi trường ảo bằng cách chỉ định thư mục đích (tuyệt đối hoặc tương đối với thư mục hiện tại) chứa môi trường ảo. Phương thức c:\>c:\Python35\python -m venv c:\path\to\myenv25 sẽ tạo môi trường trong thư mục đã chỉ định hoặc đưa ra một ngoại lệ thích hợp Phương thức c:\>c:\Python35\python -m venv c:\path\to\myenv25 của lớp c:\>c:\Python35\python -m venv c:\path\to\myenv16 minh họa các hook có sẵn để tùy chỉnh lớp con c:\>c:\Python35\python -m venv c:\path\to\myenv0 Mỗi phương thức c:\>c:\Python35\python -m venv c:\path\to\myenv29, c:\>c:\Python35\python -m venv c:\path\to\myenv30, c:\>c:\Python35\python -m venv c:\path\to\myenv31, c:\>c:\Python35\python -m venv c:\path\to\myenv32 và c:\>c:\Python35\python -m venv c:\path\to\myenv33 đều có thể bị ghi đèensure_directories(env_dir) ¶ Tạo thư mục môi trường và tất cả các thư mục con cần thiết chưa tồn tại và trả về một đối tượng bối cảnh. Đối tượng bối cảnh này chỉ là nơi chứa các thuộc tính (chẳng hạn như đường dẫn) để sử dụng bởi các phương thức khác. Nếu c:\>c:\Python35\python -m venv c:\path\to\myenv16 được tạo với arg c:\>c:\Python35\python -m venv c:\path\to\myenv35, nội dung của thư mục môi trường sẽ bị xóa và sau đó tất cả các thư mục con cần thiết sẽ được tạo lại Đối tượng ngữ cảnh được trả về là một c:\>c:\Python35\python -m venv c:\path\to\myenv36 với các thuộc tính sau
Đã thay đổi trong phiên bản 3. 12. Thuộc tính c:\>c:\Python35\python -m venv c:\path\to\myenv08 đã được thêm vào ngữ cảnh và đối tượng ngữ cảnh đã được ghi lại. Đã thay đổi trong phiên bản 3. 11. Lược đồ cài đặt venv sysconfig được sử dụng để xây dựng đường dẫn của các thư mục đã tạo. create_configuration(bối cảnh) ¶Tạo tệp cấu hình c:\>c:\Python35\python -m venv c:\path\to\myenv2 trong môi trườngsetup_python(bối cảnh) ¶ Tạo một bản sao hoặc liên kết tượng trưng đến tệp thực thi Python trong môi trường. Trên các hệ thống POSIX, nếu một tệp thực thi cụ thể c:\>c:\Python35\python -m venv c:\path\to\myenv19 đã được sử dụng, các liên kết tượng trưng đến c:\>c:\Python35\python -m venv c:\path\to\myenv20 và c:\>c:\Python35\python -m venv c:\path\to\myenv21 sẽ được tạo trỏ đến tệp thực thi đó, trừ khi các tệp có tên đó đã tồn tạisetup_scripts(bối cảnh) ¶ Cài đặt các tập lệnh kích hoạt phù hợp với nền tảng vào môi trường ảo upgrade_dependencies(bối cảnh) ¶Nâng cấp các gói phụ thuộc venv cốt lõi (hiện tại là c:\>c:\Python35\python -m venv c:\path\to\myenv00 và c:\>c:\Python35\python -m venv c:\path\to\myenv23) trong môi trường. Điều này được thực hiện bằng cách loại bỏ tệp thực thi c:\>c:\Python35\python -m venv c:\path\to\myenv00 trong môi trường Mới trong phiên bản 3. 9 post_setup(bối cảnh) ¶Một phương thức giữ chỗ có thể được ghi đè trong quá trình triển khai của bên thứ ba để cài đặt trước các gói trong môi trường ảo hoặc thực hiện các bước hậu tạo khác Đã thay đổi trong phiên bản 3. 7. 2. Windows hiện sử dụng tập lệnh chuyển hướng cho c:\>c:\Python35\python -m venv c:\path\to\myenv25 thay vì sao chép các tệp nhị phân thực tế. Trong 3. 7. 2 chỉ c:\>c:\Python35\python -m venv c:\path\to\myenv31 không làm gì trừ khi chạy từ bản dựng trong cây nguồn. Đã thay đổi trong phiên bản 3. 7. 3. Windows sao chép tập lệnh chuyển hướng như một phần của c:\>c:\Python35\python -m venv c:\path\to\myenv31 thay vì c:\>c:\Python35\python -m venv c:\path\to\myenv32. Đây không phải là trường hợp trong 3. 7. 2. Khi sử dụng liên kết tượng trưng, các tệp thực thi ban đầu sẽ được liên kết. Ngoài ra, c:\>c:\Python35\python -m venv c:\path\to\myenv16 cung cấp phương thức tiện ích này có thể được gọi từ c:\>c:\Python35\python -m venv c:\path\to\myenv32 hoặc c:\>c:\Python35\python -m venv c:\path\to\myenv33 trong các lớp con để hỗ trợ cài đặt tập lệnh tùy chỉnh vào môi trường ảoinstall_scripts(bối cảnh , đường dẫn)¶ đường dẫn là đường dẫn đến một thư mục chứa các thư mục con “common”, “posix”, “nt”, mỗi thư mục chứa các tập lệnh dành cho thư mục bin trong môi trường. Nội dung của “common” và thư mục tương ứng với c:\>c:\Python35\python -m venv c:\path\to\myenv32 được sao chép sau một số thay thế văn bản của trình giữ chỗ
Các thư mục được phép tồn tại (khi một môi trường hiện có đang được nâng cấp) Ngoài ra còn có một chức năng tiện lợi cấp mô-đun venv. tạo(env_dir , system_site_packages=False, clear=False, symlinks=False, with_pip=False, prompt=None, upgrade_deps=False)¶Tạo một c:\>c:\Python35\python -m venv c:\path\to\myenv16 với các đối số từ khóa đã cho và gọi phương thức c:\>c:\Python35\python -m venv c:\path\to\myenv41 của nó với đối số env_dir Mới trong phiên bản 3. 3 Đã thay đổi trong phiên bản 3. 4. Đã thêm tham số c:\>c:\Python35\python -m venv c:\path\to\myenv14 Đã thay đổi trong phiên bản 3. 6. Đã thêm tham số c:\>c:\Python35\python -m venv c:\path\to\myenv17 Đã thay đổi trong phiên bản 3. 9. Đã thêm tham số c:\>c:\Python35\python -m venv c:\path\to\myenv20 Một ví dụ về mở rộng c:\>c:\Python35\python -m venv c:\path\to\myenv 16¶Tập lệnh sau đây cho biết cách mở rộng c:\>c:\Python35\python -m venv c:\path\to\myenv16 bằng cách triển khai một lớp con cài đặt các công cụ thiết lập và đưa vào một môi trường ảo đã tạo |