2015-07-09 33 views
11

Tôi đang thực sự nâng cấp ứng dụng django cũ từ python2.7 lên python3.4. Trong khi cài đặt pygobject qua pip, tôi gặp lỗi này:cài đặt PyGObject qua pip trong virtualenv

Collecting pygobject 
    Using cached pygobject-2.28.3.tar.bz2 
    Complete output from command python setup.py egg_info: 
    Traceback (most recent call last): 
     File "<string>", line 20, in <module> 
     File "/tmp/pip-build-9dp0wn96/pygobject/setup.py", line 272 
     raise SystemExit, 'ERROR: Nothing to do, gio could not be found and is essential.' 
        ^
    SyntaxError: invalid syntax 

    ---------------------------------------- 
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-9dp0wn96/pygobject 

Tôi đang cố gắng cài đặt nó trong virtualenv. Cài đặt trên toàn hệ thống không hoạt động ... Tôi đang làm việc trên linux với python3.4

Tôi đã cài đặt gói vòm có tên pygobject-devel 3.16.2-1 nhưng tôi vẫn không thể nhập python gobject mô-đun

Gio bị thiếu mất tích này là gì?

Bất kỳ trợ giúp nào được hoan nghênh ... Thanx trước!

+0

Có thể là bạn chỉ cần phải cài đặt gi, nhưng tôi không chắc chắn về điều đó và không thể cài đặt PyGObject trong virtualenv tôi một trong hai. – Zelphir

+0

Ok, j Tôi đã quản lý cài đặt pyGObject, toàn hệ thống với gói được biên dịch trước, đây là cách dễ dàng hơn (extra/python-gobject2). Lỗi trên là một lỗi cú pháp đơn giản, vì setup.py cho gói pip này chỉ được thiết kế cho Windows anyway ... Tôi phải chạy một số thử nghiệm và thử nghiệm để quản lý để sử dụng nó trong virtualenv. – MicroCheapFx

+1

Theo [câu trả lời ở đây] (http://stackoverflow.com/a/38219461/339144) điều này bây giờ là có thể. Tôi không tự mình kiểm tra. –

Trả lời

7

TRẢ LỜI LÀ BÂY GIỜ TRONG BÀI ĐĂNG ĐƯỢC BAO GỒM TRONG BÌNH LUẬN TRÊN !!!! Có giao diện tại đó =>Python cannot install PyGObject

Ok tôi vừa quản lý!

Để cài đặt PyGObject trong virtrualenv, hãy từ bỏ pip.

  1. Cài đặt PyGObject toàn hệ thống (với trình quản lý gói hoặc biên dịch thủ công). Ví dụ, trong trường hợp của tôi:

    sudo pacman -Suy python-gobject2 
    
  2. liên kết nó trong virtualenv của bạn:

    ln -s /usr/lib/python3.4/site-packages/gobject* /WHEREVER/IS/YOUR/VIRTUALENV/venv/lib/python3.4/site-packages/ 
    
  3. Bạn có thể cần phải liên kết một số module khác (trong trường hợp của tôi lém lỉnh):

    ln -s /usr/lib/python3.4/site-packages/glib* /WHEREVER/IS/YOUR/VIRTUALENV/venv/lib/python3.4/site-packages/ 
    

Bạn có thể tìm thấy một số thông tin hữu ích về cài đặt toàn hệ thống và virtualenv và tương tác giữa các mô-đun tại đây :

virtualenv: Specifing which packages to use system-wide vs local

+1

Tôi đã tạo vext để tự động hóa điều này. Nếu bạn có pygobject được cài đặt trong hệ thống thì bạn có thể cài đặt vext.gi trong virtualenv. –

+0

Thx @StuartAxon, vext là một người trợ giúp tuyệt vời. – fxx

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