2011-02-08 42 views
16

Tôi đã xây dựng công cụ quickfix (http://www.quickfixengine.org/) cho một trong các nhiệm vụ của mình và cũng được xây dựng trong hỗ trợ python cho nó. Thật không may đây là một env đa người dùng và tôi không có quyền truy cập vào đường dẫn cài đặt oython. Do đó lệnh make install cố gắng sao chép các tập tin và không thành công. Tôi quản lý để bình luận ra hai dòng, nơi nó cố gắng để làm điều đó và thực hiện cài đặt hoàn thành. Vì tôi không thể đặt các tệp ở đó, tôi có thể đặt tệp .so ở đâu. Và làm thế nào để tôi cho python biết rằng nó ở đó? Tôi đã xem tài liệu python.ord nhưng nó chỉ mô tả quy trình cài đặt setup.py. Ngoài ra tôi đã cố gắng đặt con đường cho .so trong sys.path, điều đó không hoạt động. Ngoài ra là có bất kỳ tài liệu về giải phẫu của một gói python? Cảm ơn.Cách cài đặt thư viện python theo cách thủ công

+0

"Ngoài ra tôi đã thử đặt đường dẫn cho .so trong sys.path, điều đó không hoạt động."Bạn đã thử nhập mô đun mở rộng từ một tập lệnh (hoặc phiên tương tác) trong cùng thư mục với tệp' .so' cho phần mở rộng? – gotgenes

Trả lời

15

Tôi sẽ giả định biên dịch gói QuickFix không tạo tệp setup.py mà chỉ biên dịch các ràng buộc Python và dựa trên make install để đặt chúng vào vị trí thích hợp.

Trong trường hợp này, khắc phục nhanh chóng và bẩn là biên dịch nguồn QuickFix, định vị mô-đun mở rộng Python (bạn đã chỉ ra trên hệ thống của mình kết thúc bằng đuôi mở rộng .so) và thêm thư mục đó vào biến môi trường PYTHONPATH thêm

export PYTHONPATH=~/path/to/python/extensions:PYTHONPATH 

hoặc dòng tương tự trong tệp cấu hình trình bao của bạn.

Một giải pháp mạnh mẽ hơn sẽ bao gồm đảm bảo biên dịch với ./configure --prefix=$HOME/.local. Giả sử QuickFix biết đặt các tệp Python vào site-packages thích hợp, khi bạn làm make install, nó sẽ cài đặt các tệp thành ~/.local/lib/pythonX.Y/site-packages, trong đó, đối với Python 2.6+, đã có trên đường dẫn Python của bạn là per-user site-packages directory.

Nếu, mặt khác, nó đã cung cấp một tập tin setup.py, chỉ cần chạy

python setup.py install --user 

cho Python 2.6+.

2

Đây là câu hỏi thường gặp chính thức về việc cài đặt Python Modules: http://docs.python.org/install/index.html

Có một số lời khuyên mà có thể giúp bạn.

+0

có, tôi đã xem xét nó. Nhưng vấn đề là nó mô tả cách cài đặt cái gì đó được đóng gói như một mô-đun python (một cái gì đó để được cài đặt bằng cách sử dụng setup.py) Nó không cho bạn biết làm thế nào để cài đặt một số thư viện còn lại .so xung quanh. :( –

+0

Đây là một số ý tưởng khác http: // dubroy .com/blog/so-you-want-to-install-a-python-package/Có vẻ như giải pháp cho bạn có thể là pip (http://pypi.python.org/pypi/pip). –

3

Bạn cần phải cài đặt nó trong một thư mục trong thư mục chính của bạn, và bằng cách nào đó thao tác PYTHONPATH để thư mục được bao gồm.

Cách tốt nhất và dễ nhất là sử dụng virtualenv. Nhưng điều đó đòi hỏi phải cài đặt, gây ra một bắt 22. :) Nhưng kiểm tra nếu virtualenv được cài đặt. Nếu được cài đặt, bạn có thể thực hiện việc này:

$ cd /tmp 
$ virtualenv foo 
$ cd foo 
$ ./bin/python 

Sau đó, bạn có thể chạy cài đặt như bình thường, với/tmp/foo/python setup.py install. (Rõ ràng là bạn cần tạo môi trường ảo trong thư mục của bạn, không phải trong/tmp/foo.;))

Nếu không có virtualenv, bạn có thể cài đặt Python cục bộ của riêng mình. Nhưng điều đó cũng không được phép. Sau đó, bạn có thể cài đặt các gói trong một thư mục địa phương đối với các gói:

$ wget http://pypi.python.org/packages/source/s/six/six-1.0b1.tar.gz#md5=cbfcc64af1f27162a6a6b5510e262c9d 
$ tar xvf six-1.0b1.tar.gz 
$ cd six-1.0b1/ 
$ pythonX.X setup.py install --install-dir=/tmp/frotz 

Bây giờ bạn cần phải thêm /tmp/frotz/pythonX.X/site-packages để PYTHONPATH của bạn, và bạn sẽ được và chạy!

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