2012-04-18 60 views
9

Tôi gặp lỗi dưới đây sau khi cài đặt python sạch qua python cài đặt brew. Các liên kết thuộc về một cài đặt python trước đó mà tôi đã xóa bằng tay.Python yêu cầu các đường dẫn cũ hơn trên mac sau khi xóa cài đặt python trùng lặp

$ virtualenv ENV 
python: posix_spawn: /System/Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python: No such file or directory 

Tôi đang sử dụng hệ điều hành MacOS 10.7.3 và tôi cài đặt virtualenv qua pip:

$ sudo /usr/local/share/python/pip install virtualenv 
Downloading/unpacking virtualenv 
Downloading virtualenv-1.7.1.2.tar.gz (2.1Mb): 2.1Mb downloaded 
Running setup.py egg_info for package virtualenv 

warning: no previously-included files matching '*.*' found under directory 'docs/_templates' 
Installing collected packages: virtualenv 
Running setup.py install for virtualenv 

warning: no previously-included files matching '*.*' found under directory 'docs/_templates' 
Installing virtualenv script to /usr/local/share/python 
Successfully installed virtualenv 
Cleaning up... 
$ virtualenv ENV 
python: posix_spawn: /System/Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python: No such file or directory 

Làm thế nào tôi có thể sửa lỗi này?

Chỉnh sửa: Tôi đã cài đặt lại MacOSx và bây giờ trở lại trạng thái trước đó đã khiến tôi xóa trăn được cài đặt sẵn.

$ which python 
/Library/Frameworks/Python.framework/Versions/2.7/bin/python 
$ which pip /usr/local/bin/pip $ sudo pip install virtualenv 
Downloading/unpacking virtualenv 
Downloading virtualenv-1.7.1.2.tar.gz (2.1Mb): 2.1Mb downloaded 
Running setup.py egg_info for package virtualenv 

warning: no previously-included files matching '*.*' found under directory 'docs/_templates' 
Installing collected packages: virtualenv 
Running setup.py install for virtualenv 

warning: no previously-included files matching '*.*' found under directory 'docs/_templates' 
Installing virtualenv script to /usr/local/bin 
Successfully installed virtualenv 
Cleaning up... 


$ python virtualenv.py ENV 
/Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/‌​MacOS/Python: can't open file 'virtualenv.py': [Errno 2] No such file or directory 

Các virtualenv.py tọa lạc tại /Library/Python/2.7/site-packages/virtualenv.py và /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/ py2app/recipes/virtualenv.py nhưng bằng cách nào đó python bỏ lỡ tất cả.

Tại sao có quá nhiều mớ hỗn độn? Tôi nên tiến hành khắc phục điều này như thế nào?

+0

Bạn có thể hưởng lợi từ việc đọc câu trả lời đầu tiên [liên kết ở đây] (http: // stackoverflow.com/questions/1218891/multiple-versions-of-python-on-os-x-beo) và sau đó đọc liên kết mà câu trả lời cung cấp. Nó thường là một ý tưởng tồi tệ để loại bỏ các phiên bản Apple cài đặt của sự vật (đó là một lý do tại sao tôi từ chối phát triển trên một máy Mac). – ely

+0

Tôi đã sử dụng bia. Cuộc thảo luận chủ yếu trên MacPorts trong liên kết đó. – cgl

Trả lời

15

tôi đã có tình huống rất giống nhau sau khi thực hiện điều ngu ngốc xóa toàn bộ /System/Library/Frameworks/Python.framework/ gì kết quả do lỗi:

python: posix_spawn: /System/Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python: No such file or directory

tôi quản lý để khôi phục nó, bởi vì tôi đã có một bản sao trước đó của toàn bộ đĩa của tôi, và chỉ bằng cách sao chép toàn bộ thư mục Python.framework trở lại.

tôi không biết bao nhiêu là hệ thống phụ thuộc, nhưng nếu ai đó muốn thử làm điều đó theo cùng một cách thay vì cài đặt lại toàn bộ hệ điều hành X, toàn bộ Python.framework nén từ tôi là ở đây: http://andilabs.com/Python.framework.zip

+1

Cảm ơn bạn đã tải lên @andi, nhưng nó không trực tuyến nữa. Bạn có thể tải lên lại tệp Python.framework.zip đó không? –

+0

@ StéphaneBruckert liên kết sẽ hoạt động ngay bây giờ. Thưởng thức! – andi

+1

Tuyệt vời, cảm ơn bạn! –

7

Có vẻ như bạn đã xóa Python 2.7 do Apple cung cấp, là một phần của OS X 10.7. Đó là một điều xấu để làm. Bạn có thể vô tình làm hỏng các phần của OS X phụ thuộc vào nó. Nói chung, không bao giờ xóa bất cứ điều gì trong /usr (trừ /usr/local) hoặc trong /System/Library. Nếu bạn cài đặt phiên bản mới hơn, hãy quản lý phiên bản đó qua $ PATH, không phải bằng cách xóa. Điều tốt nhất dài hạn cần làm là cài đặt lại những gì bạn đã xóa; cách an toàn nhất để làm điều đó là cài đặt lại OS X. Giải pháp tạm thời có thể phải di chuyển /usr/bin/python ra khỏi đường và thay thế bằng liên kết đến /usr/local/bin/python2.7 nhưng bạn thực sự nên hoàn tác thiệt hại cho hệ thống của mình.

CẬP NHẬT: Bây giờ bạn đã khôi phục hệ thống Python (tốt!), Chúng tôi có thể nhận được sự cố ban đầu của bạn. Nếu không có thêm thông tin, tôi chỉ có thể suy đoán, nhưng rất có thể là bạn đang cài đặt virtualenv vào trường hợp Python sai. Hãy nhớ rằng bạn cần phải cài đặt một bản sao của Distribute (hoặc người tiền nhiệm của nó, setuptools), cung cấp lệnh easy_install và một bản sao riêng biệt của pip trong mọi phiên bản của Python mà bạn muốn sử dụng. Nếu bạn sử dụng easy_install mà Apple giao với OS X, bạn sẽ cài đặt vào hệ thống Apple Python. Bạn đề cập đến sử dụng brew trong một nhận xét. Nếu vậy, bạn nên theo dõi the instructions and recipes for it; đó là lý do tại sao bạn có người quản lý gói. Nhưng đây là cách bạn sẽ cài đặt tất cả mọi thứ từ đầu:

$ which python 
/Library/Frameworks/Python.framework/Versions/2.7/bin/python 
$ curl -O http://python-distribute.org/distribute_setup.py 
$ python distribute_setup.py 
[...] 
creating /Library/Frameworks/Python.framework/Versions/2.7.3_release_10.6/lib/python2.7/site-packages/distribute-0.6.26-py2.7.egg 
Extracting distribute-0.6.26-py2.7.egg to /Library/Frameworks/Python.framework/Versions/2.7.3_release_10.6/lib/python2.7/site-packages 
Adding distribute 0.6.26 to easy-install.pth file 
Installing easy_install script to /Library/Frameworks/Python.framework/Versions/2.7/bin 
Installing easy_install-2.7 script to /Library/Frameworks/Python.framework/Versions/2.7/bin 

Installed /Library/Frameworks/Python.framework/Versions/2.7.3_release_10.6/lib/python2.7/site-packages/distribute-0.6.26-py2.7.egg 
Processing dependencies for distribute==0.6.26 
Finished processing dependencies for distribute==0.6.26 
After install bootstrap. 
Creating /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg-info 
Creating /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/setuptools.pth 
$ curl -O https://raw.github.com/pypa/pip/master/contrib/get-pip.py 
$ python get-pip.py 
$ which pip 
/Library/Frameworks/Python.framework/Versions/2.7/bin/pip 
$ pip install virtualenv 
[...] 
    Installing virtualenv script to /Library/Frameworks/Python.framework/Versions/2.7/bin 
Successfully installed virtualenv 
Cleaning up... 
$ which virtualenv 
/Library/Frameworks/Python.framework/Versions/2.7/bin/virtualenv 
$ virtualenv ENV 
New python executable in ENV/bin/python 
Installing setuptools............done. 
Installing pip...............done. 
$ source ENV/bin/activate 
(ENV)$ which python 
/Users/nad/ENV/bin/python 
(ENV)$ 
+0

Vấn đề là giống như vậy đó là lý do tại sao tôi đã xóa trăn được cài đặt sẵn ở vị trí đầu tiên. Tôi đã thực hiện cài đặt lại. $ mà python /Library/Frameworks/Python.framework/Versions/2.7/bin/python $ mà pip /usr/local/bin/pip $ sudo pip cài đặt virtualenv Downloading/giải nén virtualenv .... $ python virtualenv.py ENV /Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python: không thể mở tệp 'virtualenv.py': [Errno 2] Không có tệp nào hoặc thư mục – cgl

+0

Vui lòng kiểm tra chỉnh sửa của tôi ở trên – cgl

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