2016-08-29 2 views
2

나는 this 보았고, 다음과 같은 코드를 시도 :가상 환경에서 python "gi"모듈을 설치하는 방법은 무엇입니까?

ln -s /usr/lib/python2.7/dist-packages/pygtk.pth tools/python_2_7_9/lib/python2.7/site-packages/ 
ln -s /usr/lib/python2.7/dist-packages/gobject tools/python_2_7_9/lib/python2.7/site-packages/ 
ln -s /usr/lib/python2.7/dist-packages/gtk-2.0 tools/python_2_7_9/lib/python2.7/site-packages/ 
ln -s /usr/lib/python2.7/dist-packages/pygtk.pth tools/python_2_7_9/lib/python2.7/site-packages/ 
ln -s /usr/lib/python2.7/dist-packages/glib tools/python_2_7_9/lib/python2.7/site-packages/ 
ln -s /usr/lib/python2.7/dist-packages/gi tools/python_2_7_9/lib/python2.7/site-packages/ 
ln -s /usr/lib/python2.7/dist-packages/pygtkcompat tools/python_2_7_9/lib/python2.7/site-packages/ 

을하지만, import glib 또는 import gi 여전히 오류 발생 : 해당 게시물 유사

[email protected]:~/Documents/XXX/tools$ source python_2_7_9/bin/activate 
(python_2_7_9) [email protected]:~/Documents/XXX/tools$ python 
Python 2.7.9 (default, Aug 29 2016, 16:04:36) 
[GCC 4.8.4] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import glib 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "/home/yba/Documents/XXX/tools/python_2_7_9/lib/python2.7/dist-packages/glib/__init__.py", line 22, in <module> 
    from glib._glib import * 
ImportError: /home/yba/Documents/XXX/tools/python_2_7_9/lib/python2.7/dist-packages/glib/_glib.so: undefined symbol: PyUnicodeUCS4_DecodeUTF8 
>>> import gi 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "/home/yba/Documents/XXX/tools/python_2_7_9/lib/python2.7/dist-packages/gi/__init__.py", line 36, in <module> 
    from ._gi import _gobject 
ImportError: /home/yba/Documents/lucida/tools/python_2_7_9/lib/python2.7/dist-packages/gi/_gi.so: undefined symbol: PyUnicodeUCS4_FromUnicode 
>>> 

는, 시스템 전체의 파이썬 잘 작동을 :

[email protected]:~$ python 
Python 2.7.6 (default, Jun 22 2015, 17:58:13) 
[GCC 4.8.2] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import gi 
>>> import glib 
>>> 

이 문제를 해결하는 방법은 무엇입니까? 또한 실제로 필요한 것은 import gi이 아니라 import gi.repository입니다. 고마워요!

답변

-2

가상 환경에 필요한 모듈을 설치해야합니다.

활성화 한 후에는 pip install <library name>이어야합니다. 귀하의 경우에는,되어야합니다 pip install gi

+0

(python_2_7_9) YBA @ 우분투 : ~/문서/XXX/도구 $ 핍은 입심 이 버전의 요구 사항 입심을 (만족하는 버전을 찾을 수 없습니다 입심 수집 설치 :) glib에 일치하는 배포본이 없습니다 –

+0

그래서'pip install glib'입니까? 감사! –

+0

도서관이 gi라고하는 것처럼 보입니다. 그에 따라 대답을 편집했습니다. 작동하는 경우 올바른 답으로 표시하십시오. – Av4t4r

-2

우선, 가상 환경 (2.7.9)에서 사용되는 파이썬은 시스템 차원의 파이썬 (2.7.6)과 동일하지 않으므로, 그들 사이를 비교할 때 요점을 보지 마라.

당신이 할 수있는 한 가지 방법은 처음부터 가상 환경을 만들고 -p 플래그를 사용하여 어떤 Python 버전을 사용해야하는지 지정하는 것입니다. 이처럼 : 모든

virtualenv -p /usr/bin/python2.7 <virtualenv/new/path/> 

둘째, 당신은 2.7.9 버전으로보고있는 undefined symbol: PyUnicodeUCS4_FromUnicode 오류가 파이썬 소스의 비 적절한 편집과 관련이있을 수 있습니다. 다시 컴파일 시도하지만 ./configure 줄에 --enable-unicode=ucs4 옵션에주의 :

$> tar -xf Python-2.7.6.tar 
$> cd Python-2.7.6 
$> ./configure --prefix=/usr/local --enable-shared --enable-unicode=ucs4 
$> make && make altinstall 
1

vext를 사용하여이 문제를 해결하는 것이 가능하다. Vext를 사용하면 시스템 패키지에 개별적으로 액세스하는 패키지를 virtualenv에 설치할 수 있습니다. gi에 액세스하려면 다음을 수행하십시오

pip install vext 
pip install vext.gi 
+0

이것은 단지 나에게 에러 메시지의 긴 문자열을주고 실패를 준다. ( –

+0

@ErikAronesty 나는 더 이상 같은 시스템에 있지 않아서 이중 체크를 할 수 없다 - 어쩌면 문제를 게시 할 수있다. https://github.com/ stuaxo/vext/issues 그리고 gi 자체 설치에 대해 명시 적으로하는 것과 같은 단계를 놓친 경우 – d3vid

+1

편집 해주세요. 저에게 도움이되었습니다. vext를 원하지 않으면 --system- site-packages 또는 pipenv : 'pipenv - python 3.6 - site-packages'에 대해. – r03

관련 문제