在虚拟环境中使用pip安装PyGObject

12

我实际上正在将一个旧的Django应用从Python2.7升级到Python3.4。在通过pip安装PyGObject时,我遇到了以下错误:

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

我正在尝试在虚拟环境中安装它。系统范围内的安装也无法工作... 我正在使用Python3.4在Arch Linux上工作。

我已经安装了名为pygobject-devel 3.16.2-1的Arch软件包,但仍然无法导入gobject python模块。

这是该死的缺失gio是什么?

任何帮助都受到欢迎... 提前致谢!


可能只需要安装gi,但我不确定,也无法在我的virtualenv中安装PyGObject。 - Zelphir Kaltstahl
好的,我成功地安装了pyGObject,使用一个预编译包进行系统范围内的安装,这是更简单的方法(extra/python-gobject2)。上面的错误只是一个简单的语法错误,因为这个pip包的setup.py只是为Windows设计的... 我需要运行一些测试和实验来确保在虚拟环境中使用它。 - MicroCheapFx
1
根据这里的答案,现在已经可以实现了。我自己没有验证过。 - Klaas van Schelven
@KlaasvanSchelven 没错!谢谢! - MicroCheapFx
1个回答

7

回答已经在上面的评论标记的帖子中!!请看这里 => Python无法安装PyGObject

好的,我刚刚解决了!

要在虚拟环境中安装PyGObject,请放弃使用pip。

  1. Install PyGObject system-wide (with your package manager or compile it manually). For example, in my case :

    sudo pacman -Suy python-gobject2
    
  2. Link it in your virtualenv :

    ln -s /usr/lib/python3.4/site-packages/gobject* /WHEREVER/IS/YOUR/VIRTUALENV/venv/lib/python3.4/site-packages/
    
  3. You might need to link some other modules (in my case glib) :

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

您可能会在这里找到有关系统范围内和虚拟环境安装以及模块之间交互的一些有用信息:

virtualenv:指定要在系统范围内使用哪些软件包


1
我已经制作了vext来自动化这个过程。如果您的系统中安装了pygobject,则可以在虚拟环境中安装vext.gi。 - Stuart Axon
谢谢 @StuartAxon,vext 是一个非常好的小帮手。 - f0xdx

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接