2013-09-28 257 views
12

Tôi đang cố gắng cài đặt thư viện pyleargist. Nó yêu cầu một lib libfftw3 để được cài đặt thủ công mà tôi đã cài đặt. Vì tôi không có đặc quyền gốc, tôi phải cài đặt libfftw3 trong thư mục chính của mình: ~/usr/include~/usr/lib. Sau đó, tôi làm theo bài này: https://superuser.com/questions/242190/how-to-install-matplotlib-on-os-x, thêm:pip install tùy chỉnh bao gồm đường dẫn

export LDFLAGS="-L~/usr/lib" 
export CFLAGS="-I~/usr/include 

Vì vậy mà pip biết điều đó phải tham khảo ý kiến ​​/usr để có được bao gồm (file .h) và lib ( .a, file * .so). Tuy nhiên, trong khi chạy pip install --user pyleargist, nó than phiền về:

gcc-4.4.real: src/leargist.c: No such file or directory 
gcc-4.4.real: no input files 
error: command 'gcc' failed with exit status 1 

Tôi đoán những gì xảy ra là con đường là không chính xác để nó không thể tìm thấy *.c file (tôi nghĩ pip nên đã tải về các tập tin ở đâu đó nhưng không chắc chắn Nó ở đâu vậy).

Vì vậy, câu hỏi của tôi là như sau: 1) trong trường hợp cụ thể này, làm cách nào tôi có thể cài đặt pyleargist với includelib đường dẫn dưới ~/usr? 2) thông thường hơn, làm cách nào để có thể cung cấp đường dẫn bổ sung cho pip để nó biết nơi nhận thêm tệp hoặc lib bổ sung nếu không tìm thấy trong đường dẫn mặc định?

p.s Tôi đang sử dụng máy ubuntu không có đặc quyền sudo.

ref:
https://pypi.python.org/pypi/pyleargist/1.0.1
http://www.fftw.org/

+0

bạn đã đi như thế nào? Bạn có tất cả các phụ thuộc bị thiếu trong ~/usr/..? Các phiên bản bạn đã có có tương thích với các phụ thuộc được cài đặt trên hệ thống không? – drevicko

+0

@drevicko Có. Chỉ có phụ thuộc và tôi đặt nó vào '~/usr /'. Chúng tương thích. Tôi biết nó bởi vì tôi có thể cài đặt nó trên các máy khác, nơi tôi có đặc quyền 'sudo'. – clwen

+0

Lệnh 'gcc' đã tạo lỗi là gì? Ngoài ra vị trí của 'leargist.c' và nếu nó tồn tại ở đâu đó trong' ~/usr/'của bạn hoặc ở nơi khác? – drevicko

Trả lời

0

nếu bạn không có gốc, bạn có thể có được một virtual enviroment không có rễ là cần thiết để có được một và con đường của bạn sẽ được ở nhà

curl -O https://pypi.python.org/packages/source/v/virtualenv/virtualenv-1.10.1.tar.gz 
tar xvfz virtualenv-1.10.1.tar.gz 
cd virtualenv-1.10.1.tar.gz 
python virtualenv.py myVE 

sau đó con đường của bạn được đặt trong nhà của bạn:

cd myVE/bin 
./python 

>>> import sys 
>>> sys.path 
['', '/home/foobar/temp/virtualenv-1.10.1/myVE/lib/python33.zip', '/home/foobar/temp/virtualenv-1.10.1/myVE/lib/python3.3', '/home/foobar/temp/virtualenv-1.10.1/myVE/lib/python3.3/plat-linux', '/home/foobar/temp/virtualenv-1.10.1/myVE/lib/python3.3/lib-dynload', '/usr/lib64/python3.3', '/usr/lib/python3.3', '/usr/lib/python3.3/plat-linux', '/home/foobar/temp/virtualenv-1.10.1/myVE/lib/python3.3/site-packages'] 
>>> 
15

pip có cờ --global-option

Bạn có thể sử dụng thẻ này để chuyển cờ bổ sung cho build_ext.

Ví dụ, để thêm một lá cờ -I:

pip install --global-option=build_ext --global-option="-I/home/users/abc/include/" pyOpenSSL 
0

Đây là một chủ đề rất hữu ích. Chỉ cần thêm vào đó, bạn cũng có thể sử dụng pip mà không có gốc nếu bạn vượt qua --user cờ ở cuối:

pip install --global-option="-I/home/users/abc/include/" mpi4py --user 

Ví dụ, nếu bạn đang sử dụng python-v2.7, lệnh trên sẽ cài đặt gói python đến /home/username/.local/lib/python2.7/site-packages