2011-07-08 9 views
6

Tôi có python 2.7 được cài đặt qua cổng mac trên máy mac. Tôi đã cài đặt virtualenv qua macports (py27-virtualenv @ 1.6.1_0 (đang hoạt động) Khi phát lệnh: virtualenv demo_venv --no-site-packages, tôi nhận được lỗi này: -bash: virtualenv: lệnh không tìm thấy. Nó không chọn virtualenv lên @ tất cả, vì vậy tôi cần phải symlink nó đến vị trí python27 tôi?lệnh virtualenv không tìm thấy sau khi cài đặt với MacPorts

+1

bạn sẽ nhận được gì khi chạy 'virtualenv' nào tại dấu nhắc bash? –

+0

Không có gì. Nó chỉ trở lại dấu nhắc bash trống. – demet8

+0

được, điều đó có nghĩa là nó không nằm trong đường dẫn của bạn. –

Trả lời

1

bạn cần phải chắc chắn virtualenv là trong PATH của bạn, mặc dù nó nên nếu nó đã được cài đặt một cách chính xác.

+0

Tôi đang kiểm tra ngay bây giờ. Nó phải ở trong con đường của tôi, không chắc chắn tại sao nó không như vậy. Cảm ơn. – demet8

3

MacPorts cài đặt liên kết phiên bản tới virtualenv trong /opt/local/bin, vị trí mặc định cho MacPorts Khi sử dụng MacPorts, bạn cần đảm bảo /opt/local/bin có trên biến môi trường PATH shell của bạn. Ở đây, tôi hiển thị cả hai py26-virtualenvpy27-virtualenv được cài đặt:

$ echo $PATH 
/opt/local/Library/Frameworks/Python.framework/Versions/Current/bin:/opt/local/bin:/opt/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/Developer/Tools 
$ ls -l /opt/local/bin/virtuale* 
lrwxr-x--- 1 root admin 13 Oct 15 2009 /opt/local/bin/[email protected] -> virtualenv2.6 
lrwxr-xr-x 1 root wheel 74 May 17 02:20 /opt/local/bin/[email protected] -> /opt/local/Library/Frameworks/Python.framework/Versions/2.6/bin/virtualenv 
lrwxr-xr-x 1 root wheel 74 May 17 02:29 /opt/local/bin/[email protected] -> /opt/local/Library/Frameworks/Python.framework/Versions/2.7/bin/virtualenv 
lrwxr-xr-x 1 root wheel 88 Jun 27 2010 /opt/local/bin/[email protected] -> /opt/local/Library/Frameworks/Python.framework/Versions/2.6/bin/virtualenvw 

Nói chung, nếu bạn muốn biết những tập tin một cổng MacPort cài đặt và ở đâu, sử dụng port contents để tìm hiểu:

$ port contents py27-virtualenv 
Port py27-virtualenv contains: 
    /opt/local/Library/Frameworks/Python.framework/Versions/2.7/bin/virtualenv 
    /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/virtualenv-1.6.1-py2.7.egg-info/PKG-INFO 
    /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/virtualenv-1.6.1-py2.7.egg-info/SOURCES.txt 
    /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/virtualenv-1.6.1-py2.7.egg-info/dependency_links.txt 
    /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/virtualenv-1.6.1-py2.7.egg-info/entry_points.txt 
    /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/virtualenv-1.6.1-py2.7.egg-info/not-zip-safe 
    /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/virtualenv-1.6.1-py2.7.egg-info/top_level.txt 
    /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/virtualenv.py 
    /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/virtualenv.pyc 
    /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/virtualenv_support/__init__.py 
    /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/virtualenv_support/__init__.pyc 
    /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/virtualenv_support/distribute-0.6.16.tar.gz 
    /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/virtualenv_support/pip-1.0.1.tar.gz 
    /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/virtualenv_support/setuptools-0.6c11-py2.7.egg 
    /opt/local/bin/virtualenv-2.7 
    /opt/local/share/doc/py27-virtualenv/index.txt 
    /opt/local/share/doc/py27-virtualenv/news.txt 
+0

Cảm ơn Ned lần nữa, sự giúp đỡ của bạn luôn được đánh giá cao. – demet8

+0

khi tôi làm: nội dung cổng py27-virtualenv Tôi nhận được chính xác những gì bạn có. Python2.7 chạy tốt & py27-virtualenv nói rằng nó được cài đặt và (hoạt động) thông qua macports. Khi tôi đi: mà virtualenv tôi vẫn nhận được một vỏ bash rỗng khi trở về. Tôi đã thử một liên kết tượng trưng: sudo ln -s/opt/local/var/macports/software/py27-virutalenv/opt/local/bin và nó vẫn không hoạt động. Ban đầu tôi đã thử các liên kết tượng trưng mà không có sudo nhưng tôi đã nhận được sự cho phép từ chối. Macports tôi giả định không thích điều đó. Tôi đã thiết lập này chạy tốt trên mac khác nhưng điều này đã được một cơn đau ở mông. Tôi không chắc vấn đề là gì. Cảm ơn. – demet8

+0

Tôi cũng nhận được điều này: - demetriusford $ ls -l/opt/local/bin/virtuale * lrwxr-xr-x 1 quản trị viên gốc 74 Jul 6 16:27 /opt/local/bin/virtualenv-2.7 ->/opt/local/Library/Frameworks/Python.framework/Phiên bản/2.7/bin/virtualenv – demet8

4

Lệnh là virtualenv-2.7, không chỉ virtualenv.

Nếu bạn xem nội dung gói, bạn có thể thấy rằng không có tệp thực thi nào có tên virtualenv được cài đặt.

2

Nếu bạn sử dụng virtualenvwrapper, bạn có thể định cấu hình môi trường vỏ của mình để trỏ đến tập lệnh virtualenv chính xác. Cài đặt cổng py27-virtualenvwrapper và thêm những dòng này vào hồ sơ Bash của bạn:

export VIRTUALENVWRAPPER_VIRTUALENV=/opt/local/bin/virtualenv-2.7 
source /opt/local/bin/virtualenvwrapper.sh-2.7 

Không hackery con đường khác hoặc liên kết tượng trưng nên được yêu cầu khi bạn sử dụng các lệnh virtualenvwrapper:

% mkvirtualenv demo_venv --no-site-packages 
35

Như bạn đã nói, MacPorts cung cấp một số phiên bản của gói pyXX-virtualenv. Bạn cần phải cho MacPorts mà những phiên bản bạn muốn sử dụng theo mặc định:

port select --list virtualenv 
port select --set virtualenv virtualenv27 
which virtualenv 

Sau đó, bạn sẽ có thể chỉ cần gõ virtualenv (giả sử thư mục bin MacPorts là trong con đường của bạn).

+5

Câu trả lời này phải là câu trả lời đúng. Đây là cách đúng để xử lý điều này trong MacPorts. –

+0

Đây là cách chính xác, thực sự. Ngoài ra, đối với người dùng zsh, hãy đảm bảo bạn phát hành 'rehash' sau khi thực hiện' cổng select'. –