2010-11-16 29 views
5

Tôi đang cố gắng phân phối ứng dụng Python 2.5 giá treo hiện có trên OS X Snow Leopard.Gặp lỗi PasteScript khi tôi cố gắng phân phối ứng dụng Giá treo hiện có

Tôi đã cài đặt Python 2.5 và đặt nó làm cài đặt mặc định Python, cài đặt paster và cài đặt phiên bản giá treo các ứng dụng cần (0.9.6.1) cũng như các trứng khác ... nhưng khi tôi cd thư mục chính và làm "paster serve development.ini" Tôi nhận được thông tin sau:

File "/usr/local/bin/paster", line 5, in <module> 
    from pkg_resources import load_entry_point 

File "/System/Library/Frameworks/Python.framework/Versions/2.5/Extras/lib/python/pkg_resources.py", line 2603, in <module> 

File "/System/Library/Frameworks/Python.framework/Versions/2.5/Extras/lib/python/pkg_resources.py", line 666, in require 

File "/System/Library/Frameworks/Python.framework/Versions/2.5/Extras/lib/python/pkg_resources.py", line 565, in resolve 

pkg_resources.DistributionNotFound: PasteScript==1.7.3 

Tôi chắc chắn đã thực hiện "easy_install PasteScript == 1.7.3" và tôi vẫn gặp lỗi này. Có cái gì đó thực sự rõ ràng tôi đang thiếu? Cứu giúp?

Xin cảm ơn trước.

+0

Bạn có cài đặt mọi thứ vào virtualenv hoặc hệ thống không? –

+1

Tôi đang sử dụng hệ thống. Tôi đã sử dụng "mặc định viết com.apple.versioner.python Phiên bản 2.5" để đặt Python 2.5 làm mặc định của tôi cho Snow Leopard (trừ cài đặt sẵn 2.6) – Sarah

Trả lời

1

Bạn có thể có nhiều cài đặt Python trên hệ thống của mình. Lệnh easy_install có thể đã cài đặt PasteScript vào một trình thông dịch Python khác. Bạn có thể có một lệnh easy_install-2.5 cụ thể mà bạn nên sử dụng thay thế cho trình thông dịch Python 2.5.

Tuy nhiên, bạn nên sử dụng virtualenv trên hệ thống phát triển của mình.

Virtualenv cho phép bạn tạo một hộp cát được liên kết với một trình thông dịch Python cụ thể và nơi bạn có thể cài đặt các phiên bản gói cụ thể cục bộ dựa trên từng dự án.

Thông tin thêm về việc sử dụng virtualenv với giá treo ở đây: http://wiki.pylonshq.com/display/pylonscookbook/Using+a+Virtualenv+Sandbox

1

Có lẽ đây là câu trả lời quá đơn giản, nhưng tôi sẽ thử cài đặt phiên bản cụ thể easy_install-2.5 PasteScript==1.7.3 Xem Easy install docs để biết chi tiết.

0

Chỉnh sửa dòng đầu tiên trong /usr/sbin/luci, và sau đó thêm các phiên bản của python vào dòng dưới đây:

#!/usr/bin/python -Es 

Chỉnh sửa dòng đầu tiên trong /usr/bin/paster và sau đó thêm phiên bản của python vào dòng dưới đây:

#!/usr/bin/python 
0

Tôi hiểu điều này lỗi ngay cả khi tôi đã "paster --help". PasteScript nằm trong các gói trang web của virtual-env và PasteScript của tôi xuất hiện trong phần đóng băng pip. Vấn đề là thư mục PasteScript đã kết thúc bằng .dist-info. Một quả trứng khác gọi là phân phối đã được cài đặt và nó ở phía trước của sys.path của tôi. Nó có phiên bản cũ hơn của pkg_resources mà không biết về thư mục trứng ".dist-info". Logic pkg_resources được đề cập là trong hàm find_on_path. Bạn có thể tìm kiếm pkg_resources cho "dist-info". Vì vậy, "pkg_resources.get_distribution ('PasteScript')" trong paste/script/command.py không tìm thấy PasteScript mặc dù nó đã được cài đặt. Để tìm pkg_resources đang được sử dụng, bạn có thể chạy python và đi "import pkg_resources; print pkg_resources". Gỡ cài đặt "phân phối" đã khắc phục lỗi hiện tại của tôi (nhưng sau đó tôi nhấn một lỗi khác).

Cập nhật: Tôi đã cài đặt phiên bản 2.6.2 mới nhất (vào tháng 4 năm 2017) trên Ubuntu chính xác (v12, cũ một chút, phát hành năm 2012-2014) (cập nhật đầy đủ với apt-get update)/precision64). Nó bị hỏng. Sử dụng hình ảnh ubuntu/trusty64 hoạt động hoàn hảo.

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