Việc sử dụng pip3
để cài đặt gói trong một virtualenv
khiến gói được cài đặt trong thư mục gói trang chung thay vì gói trong thư mục virtualenv. Đây là cách tôi thiết lập Python3 và virtualenv trên OS X Mavericks (10.9.1):
Tôi đã cài đặt Python3 bằng Homebrew:
ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"
brew install python3 --with-brewed-openssl
Đã thay đổi $PATH
biến trong .bash_profile
; đã thêm dòng sau:
export PATH=/usr/local/bin:$PATH
Chạy which python3
trả lại/usr/local/bin/python3
(sau khi khởi động lại trình bao).
Lưu ý: which python3
vẫn trả hàng /usr/bin/python
mặc dù.
Được cài đặt virtualenv
bằng pip3
:
pip3 install virtualenv
Tiếp theo, tạo mới virtualenv
và kích hoạt nó:
virtualenv testpy3 -p python3
cd testpy3
source bin/activate
Lưu ý: nếu tôi không chỉ định -p python3, pip sẽ bị thiếu trong thư mục bin trong virtualenv.
Đang chạy which pip
và which pip3
cả hai đều trả về thư mục virtualenv:
/Users/kristof/VirtualEnvs/testpy3/bin/pip3
Bây giờ, khi tôi cố gắng cài đặt, ví dụ: Markdown bằng cách sử dụng pip trong virtualenv đã được kích hoạt, pip sẽ cài đặt trong thư mục gói trang chung thay vì thư mục gói trang của virtualenv.
pip install markdown
Chạy pip list
trả về:
Markdown (2.3.1)
pip (1.4.1)
setuptools (2.0.1)
virtualenv (1.11)
Nội dung của /Users/kristof/VirtualEnvs/testpy3/lib/python3.3/site-packages
:
__pycache__/
_markerlib/
easy_install.py
pip/
pip-1.5.dist-info/
pkg_resources.py
setuptools/
setuptools-2.0.2.dist-info/
Nội dung của /usr/local/lib/python3.3/site-packages
:
Markdown-2.3.1-py3.3.egg-info/
__pycache__/
easy-install.pth
markdown/
pip-1.4.1-py3.3.egg/
setuptools-2.0.1-py3.3.egg
setuptools.pth
virtualenv-1.11-py3.3.egg-info/
virtualenv.py
virtualenv_support/
Như bạn có thể thấy, thư mục gói trang toàn cầu chứa Markdown, thư mục virtualenv thì không.
Lưu ý: Tôi đã cài đặt Python2 và Python3 trước đó trên một máy ảo khác (làm theo các hướng dẫn sau) và gặp vấn đề tương tự với Python3; Tuy nhiên, việc cài đặt các gói trong virtualenv dựa trên Python2 hoạt động hoàn hảo.
Bất kỳ lời khuyên, gợi ý, ... sẽ được đánh giá rất cao.
pip3
?). Bản thân nó có thể không xấu nhưng bạn nên lưu ý nếu có.