在 virtualenv 中通过 pip 安装 PyGObject [重复]
Posted
技术标签:
【中文标题】在 virtualenv 中通过 pip 安装 PyGObject [重复]【英文标题】:installing PyGObject via pip in virtualenv [duplicate] 【发布时间】:2015-09-28 05:43:21 【问题描述】:我实际上是在将一个旧的 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
我正在尝试将它安装在 virtualenv 中。系统范围的安装也不起作用......我正在使用 python3.4 开发 arch linux
我已经安装了名为 pygobject-devel 3.16.2-1 的 arch 包,但我仍然无法导入 gobject python 模块
这个该死的失踪 gio 是什么?
欢迎任何帮助... 提前谢谢!
【问题讨论】:
可能你只需要安装gi,但我不确定,也无法在我的virtualenv中安装PyGObject。 好吧,我设法用预编译的包在系统范围内安装了 pyGObject,这是更简单的方法(extra/python-gobject2)。上面的错误是一个简单的语法错误,因为这个 pip 包的 setup.py 无论如何都只是为 Windows 设计的......我必须运行一些测试和实验才能设法在 virtualenv 中使用它。 根据the answer here,这现在是可能的。我自己没有检查这个。 @KlaasvanSchelven 你是对的!谢谢! 【参考方案1】:答案现在在上面的评论中标记的帖子中!!!! 看看那里 => Python cannot install PyGObject
好的,我刚刚成功了!
要在virtrualenv中安装PyGObject,放弃pip。
在系统范围内安装 PyGObject(使用包管理器或手动编译)。例如,就我而言:
sudo pacman -Suy python-gobject2
在你的 virtualenv 中链接它:
ln -s /usr/lib/python3.4/site-packages/gobject* /WHEREVER/IS/YOUR/VIRTUALENV/venv/lib/python3.4/site-packages/
您可能需要链接一些其他模块(在我的例子中是 glib):
ln -s /usr/lib/python3.4/site-packages/glib* /WHEREVER/IS/YOUR/VIRTUALENV/venv/lib/python3.4/site-packages/
您可能会在此处找到有关系统范围和 virtualenv 安装以及模块之间交互的一些有用信息:
virtualenv: Specifing which packages to use system-wide vs local
【讨论】:
我已经做了 vext 来自动化这个。如果你在系统中安装了 pygobject,那么你可以在 virtualenv 中安装 vext.gi。 谢谢@StuartAxon,vext 是一个很棒的小助手。以上是关于在 virtualenv 中通过 pip 安装 PyGObject [重复]的主要内容,如果未能解决你的问题,请参考以下文章