Các môi trường ảo Python được sử dụng để tạo các môi trường python bị cô lập để tránh xung đột phụ thuộc và phiên bản, và cũng gián tiếp xử lý các vấn đề về quyền. Nhưng cách dễ nhất để thiết lập và sử dụng nó trong Ubuntu là gì?
Các môi trường ảo Python được sử dụng để tạo các môi trường python bị cô lập để tránh xung đột phụ thuộc và phiên bản, và cũng gián tiếp xử lý các vấn đề về quyền. Nhưng cách dễ nhất để thiết lập và sử dụng nó trong Ubuntu là gì?
Câu trả lời:
virtualenvwrapper
(trình bao bọc thân thiện với người dùng cho chức năng của virtualenv
)Cài đặt virtualenv
với
sudo apt-get install virtualenv
(cho cài đặt Ubuntu 14.04 (đáng tin cậy) python-virtualenv
)
Lý do chúng tôi cũng đang cài đặt virtualenvwrapper là vì nó cung cấp các lệnh đơn giản và đẹp để quản lý môi trường ảo của bạn. Có hai cách để cài đặt virtualenvwrapper
:
Chạy
sudo apt install virtualenvwrapper
sau đó chạy
echo "source /usr/share/virtualenvwrapper/virtualenvwrapper.sh" >> ~/.bashrc
Cài đặt và / hoặc cập nhật pip
Cài đặt pip cho Python 2 với
sudo apt-get install python-pip
hoặc cho Python 3
sudo apt-get install python3-pip
(nếu bạn sử dụng Python 3, bạn có thể cần sử dụng pip3
thay vì pip
trong phần còn lại của hướng dẫn này).
Tùy chọn (nhưng được khuyến nghị): Bật bash autocomplete cho pip
Chạy
pip completion --bash >> ~/.bashrc
và chạy source ~/.bashrc
để kích hoạt.
Cài đặt virtualenvwrapper
Bởi vì chúng tôi muốn tránhsudo pip
chúng tôi cài đặt virtualenvwrapper
cục bộ (theo mặc định bên dưới ~/.local
) với:
pip install --user virtualenvwrapper
và
echo "export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3" >> ~/.bashrc
Nguồn virtualenvwrapper trong .bashrc
echo "source ~/.local/bin/virtualenvwrapper.sh" >> ~/.bashrc
Đầu tiên chúng ta xuất WORKON_HOME
biến chứa thư mục chứa môi trường ảo của chúng ta. Hãy làm điều này~/.virtualenvs
export WORKON_HOME=~/.virtualenvs
bây giờ cũng tạo thư mục này
mkdir $WORKON_HOME
và đặt xuất này trong ~/.bashrc
tệp của chúng tôi để biến này được tự động xác định
echo "export WORKON_HOME=$WORKON_HOME" >> ~/.bashrc
Chúng tôi cũng có thể thêm một số thủ thuật bổ sung như sau, điều này đảm bảo rằng nếu pip
tạo thêm một môi trường ảo, nó cũng được đặt trong WORKON_HOME
thư mục của chúng tôi :
echo "export PIP_VIRTUALENV_BASE=$WORKON_HOME" >> ~/.bashrc
Nguồn ~ / .bashrc để tải các thay đổi
source ~/.bashrc
Kiểm tra nếu nó hoạt động
Bây giờ chúng tôi tạo ra môi trường ảo đầu tiên của chúng tôi. Đối -p
số là tùy chọn, nó được sử dụng để đặt phiên bản Python sử dụng; nó cũng có thể là python3
ví dụ
mkvirtualenv -p python2.7 test
Bạn sẽ thấy môi trường sẽ được thiết lập và lời nhắc của bạn hiện bao gồm tên của môi trường hoạt động của bạn trong ngoặc đơn. Ngoài ra nếu bây giờ bạn chạy
python -c "import sys; print sys.path"
bạn sẽ thấy rất nhiều /home/user/.virtualenv/...
vì hiện tại nó không sử dụng các gói trang web hệ thống của bạn.
Bạn có thể hủy kích hoạt môi trường của mình bằng cách chạy
deactivate
và nếu bạn muốn làm việc lại, chỉ cần gõ
workon test
Cuối cùng, nếu bạn muốn xóa môi trường của mình, hãy gõ
rmvirtualenv test
Thưởng thức!
Cảm ơn tác giả của blogpost này .
--no-site-packages
mặc định và --distribute
không dùng nữa
mkvirtualenv test
không hoạt động, xem thêm: stackoverflow.com/questions/15608236/ Kẻ
Các môi trường ảo cung cấp một cách để quản lý và cô lập các phụ thuộc trên cơ sở từng dự án. Hơn nữa, họ cũng tránh được toàn bộ sudo pip install
tình huống, đó là một rủi ro bảo mật như tôi đã giải thích trong https://askubfox.com/a/802594/15003 . Tài liệu Python chính thức cũng khuyến khích sử dụng môi trường ảo .
Cách dễ nhất để tạo và sử dụng môi trường ảo cho cả Python 2 và Python 3 là cài đặt virtualenv
bằng apt
hoặc apt-get
. Đối với mỗi dự án Python, tạo một virtualenv và sau đó kích hoạt nó. Lưu ý rằng virtualenv dành riêng cho một phiên bản Python cụ thể. Sau khi kích hoạt, sử dụng pip
để cài đặt các gói Python như bình thường bất kể bạn đang sử dụng Python 2 hay 3; không cần sử dụng pip3
cho Python 3. sudo
chỉ được sử dụng để cài đặt virtualenv
và không được sử dụng pip
, do đó tránh được rủi ro bảo mật đã nói ở trên. Các lệnh để làm như vậy là:
sudo apt update
sudo apt install virtualenv
cd ~/desired_directory # cd to desired_directory
virtualenv venv # create virtualenv named venv for default system Python, which is Python 2 for Ubuntu
source venv/bin/activate # activate virtualenv
pip install -U pip # upgrade pip in case it is outdated
pip install desired_package # install desired_package
Nếu bạn muốn tạo một virtualenv cho Python 3, hãy thay thế virtualenv venv
bằng:
virtualenv venv -p python3
Đọc thêm về nhiều loại chuông và còi khác nhau virtualenv
tại https://virtualenv.pypa.io/en/ sóng / .
source
tiết kiệm cho tôi rất nhiều lệnh
Thật dễ dàng, bạn cài đặt python-virtualenv . Sau đó, bạn có thể tạo một virtualenv bằng virtualenv
lệnh. Xem tài liệu của họ để biết thêm.
Các môi trường ảo (venvs) rất phổ biến đến nỗi chức năng hiện được bao gồm trong chính python (từ 3.3 trở đi). Để sử dụng nó trên Ubuntu, bạn cần cài đặt python3-venv
(vì ensurepip
mô-đun không có sẵn):
sudo apt-get install python3-venv
Sau đó bạn có thể sử dụng
pyvenv myvirtualenv
để tạo ra một môi trường ảo được gọi là myvirtualenv
. Sau đó bạn có thể sử dụng
source myvirtualenv/bin/activate
để kích hoạt môi trường ảo. Để hủy kích hoạt, chỉ cần gõ
deactivate
EDIT:
Các pyvenv
kịch bản đã được phản đối ủng hộ python3 -m venv
. Điều này ngăn ngừa sự nhầm lẫn về những gì trình thông dịch Python pyvenv
được kết nối với và do đó, trình thông dịch Python sẽ được sử dụng bởi môi trường ảo. ( nguồn )
python-pip
vàpython-virtualenv
có thể cài đặt thông qua bản sửa lỗi Ubuntu, không cần cài đặt thủ công.