2015-05-28 17 views
5

Sau khi chuyển sang python 3.4.3 từ 2.7.9 (khá đơn giản), tôi thường muốn thử nghiệm một số kịch bản của mình bằng python 2.7.9 trước khi chia sẻ chúng với đồng nghiệp. Tôi đang sử dụng nền tảng OSX yosemite với mọi thứ được biên dịch từ homebrew.Làm thế nào tôi có thể làm cho trăn và pyenv của homebrew sống cùng nhau?

Tình huống khá xấu (thiết lập PATH es và PYTHONPATH ở mỗi bước) - cho đến khi tôi phát hiện pyenv thực hiện điều này rất dễ dàng và dễ dàng cài đặt bằng homebrew. Càng xa càng tốt.

Tuy nhiên, bây giờ tôi đang sử dụng phiên bản này của python, nó không nhất thiết phải chơi tốt với của homebrew. Hơn nữa, tôi thấy rằng tôi có thể chuyển về python của hệ thống, và tổng quát hơn pyenv có thể truy cập vào đó:

$ pyenv versions 
    system 
    2.7.9 
* 3.4.3 (set by /usr/local/var/pyenv/version) 

nhưng làm thế nào tôi cũng có thể thêm mục cho các python s biên soạn bởi homebrew?

Trả lời

4

Bạn có thể cài đặt pyenv trong thư mục chính của bạn (như mô tả trong hướng dẫn cài đặt pyenv), và sau đó tạo ra một liên kết tượng trưng tại ~/.pyenv/versions-$(brew --cellar)/python:

ln -s $(brew --cellar python)/* ~/.pyenv/versions/ 

Cách công trình Homebrew hiện nay, điều này sẽ đón cả 2 .x và 3.x.

+0

Điều này sẽ không hoạt động nếu thư mục phiên bản đã tồn tại và sẽ không bao gồm python3. Ngoài ra, tôi khá chắc chắn bạn có nghĩa là: ln -s $ (brew --cellar)/python ~/.pyenv/phiên bản – misnomer

+1

Trên thực tế, bạn cần phải chạy 'ln -s $ (brew -cellar python)/* ~/.pyenv/versions'. Nếu không, phiên bản python được thêm vào sẽ được gọi là 'python' thay vì' 2.7.0' – hanxue

+0

Vì tôi đã cố gắng liệt kê môi trường python3 đã cài đặt homebrew của mình trong pyenv, sau đây đã làm việc cho tôi: 'ln -s $ (brew - cellar python3)/* ~/.pyenv/versions' đã lừa tôi – JacobWuzHere

3

Vâng, nếu bạn muốn python pyenv và homebrew pythons sống chung với nhau, bạn cần phải đặt tên cho những con trăn homebrew khác với phiên bản. Nếu không, họ sẽ đụng độ với các tên thư mục mà pyenv sử dụng. Ví dụ, nếu bạn muốn cài đặt pyenv python 2.7.11 và homebrew python 2.7.11 bạn có thể làm một cái gì đó như thế này.

for i in `ls $(brew --cellar python)/`; do 
    ln -s $(brew --cellar python)/$i $HOME/.pyenv/versions/$i-brew; 
done 

for i in `ls $(brew --cellar python3)/`; do 
    ln -s $(brew --cellar python)/$i $HOME/.pyenv/versions/$i-brew; 
done 

Về cơ bản điều này sẽ tạo thư mục có $ HOME/.pyenv/phiên bản gắn với '-brew' để nó không bị đụng chạm với pyenv pythons.

+0

lỗi trong liên kết tượng trưng cho python3; thiếu "3" – farooqsadiq

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