2011-11-27 35 views
13

Nói cách khác, sự khác nhau giữa các lệnh mkvirtualenvmkproject là gì?Mối quan hệ giữa môi trường và dự án trong virtualenvwrapper là gì?

Tôi có một công việc trông như thế này:

/dev 
    projectA 
     appA 
     appB 
    projectB 
     appA 
     appB 

Tất cả các ứng dụng chia sẻ một số tài nguyên (như Nam, pep8, vv), nhưng các nguồn lực khác là cụ thể cho từng ứng dụng. Tôi có nên sử dụng các dự án "virtualenvwrapper" để giữ những phụ thuộc này tách biệt không?

+0

Dự án virtualenvwrapper là gì? Virtualenwrapper tạo, quản lý và xóa virtualenv. Bạn có thể tạo bất kỳ virtualenv nào bạn thích hoạt động cho một thiết bị đầu cuối. – hughdbrown

Trả lời

15

Từ sự hiểu biết của tôi về documentation, mkvirtualenv projectenv chỉ đơn giản là tạo ra một môi trường ảo mới có tên projectenv trong $WORKON_HOME, trong khi mkproject projectenv tạo ra một môi trường ảo mới có tên projectenv và một thư mục mới có tên projectenv; sau khi tạo, thư mục projectenv sẽ tự động trở thành thư mục làm việc hiện tại của bạn. Môi trường ảo sẽ tồn tại trong $WORKON_HOME và thư mục phát triển tồn tại trong $PROJECT_HOME.

Lưu ý, để mkproject hoạt động chính xác, trước tiên bạn phải đặt biến môi trường PROJECT_HOME thành tên thư mục nơi bạn muốn tạo dự án. Bạn có thể thực hiện việc này ở cùng một nơi mà bạn đặt biến số $WORKON_HOME hoặc thiết lập nó một cách nhanh chóng, ví dụ:

export PROJECT_HOME=$HOME/src/allprojects 
mkproject mynewproject 

mynewproject bây giờ sẽ có môi trường ảo hiện tại của bạn và một mynewproject thư mục mới sẽ tồn tại trong ~/src/allprojects.

3

mkvirtualenv là mệnh lệnh từ virtualenvwrapper mà làm virtualenvs quản lý trăn dễ dàng hơn, trong khi mkproject xuất phát từ một plugin virtualenvwrapper để quản lý dự án của bạn (đã được tích hợp trực tiếp vào virtualenvwrapper)

trang Plugin đề cập đến các tính năng sau:

Quản lý thư mục công việc của dự án phát triển cùng với môi trường ảo của bạn . Xác định API để tạo mẫu tới nhanh chóng tạo môi trường mới nhất quán. Sử dụng lệnh workon từ virtualenvwrapper để chuyển đổi giữa các dự án. Móc cấu hình người dùng để tùy chỉnh dự án mới.

Bạn không phải tạo hoặc quản lý dự án của mình bằng plugin virtualenvwrapper để sử dụng lệnh virtualenv. Nó chỉ là một plugin tiện lợi cho các công cụ như trao đổi thư mục dự án khi phát hành một lệnh workon, hoặc từ việc tạo các dự án mới từ các khuôn mẫu.

virtualenv cho chính nó không có khả năng chia sẻ thư viện ngoại trừ với các gói hệ thống trang web nếu bạn sử dụng đúng cờ. Tôi tình cờ gặp một dự án đã cho bạn khả năng này trong số những thứ khác, nhưng không bao giờ tìm thấy nó nữa.

EDIT: virtualenvwrapper hiện có chức năng copy virtualenvs và để thêm thư mục vào virtualenv PATH của bạn để share libraries.

Các vấn đề liên quan