Python 无法安装 PyGObject

Python cannot install PyGObject

我尝试通过 pip 安装 pygobject

pip install --user 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 "C:\Users\A\AppData\Local\Temp\pip-build-phby_jwb\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 C:\Users\A\AppData\Local\Temp\pip-build-phby_jwb\PyGObject

我的python版本v3.5.0:374f501f4567, 现在我在 windows 7

上工作

上游 PyGObject 不支持这个。查看PyGObject win32 project or the MSYS2项目轻松获取。

自2017年2月起,可以直接通过pip安装pygobject:pip install pygobject。不过,它需要安装一些软件包。

在此之前,它花了一段时间,但可以用 pip 安装 pygobject,因为 this commit

pygobject 不在 pypi 上,所以你必须指定 git 或 tarball URL:

  • git+https://git.gnome.org/browse/pygobject
  • https://download.gnome.org/sources/pygobject/3.22/pygobject-3.22.0.tar.xz

后者只适用于 pygobject 3.22+,这应该已经发生了 around mid-september 2016。 (3.21.1 应该是第一个 pip-installable 开发版本)

对于windows

  1. 转到 http://www.msys2.org/ 并下载 x86_64 安装程序
  2. 按照页面上的说明设置基本环境
  3. 运行 C:\msys64\mingw32.exe - 终端 window 应该弹出
  4. 执行pacman -Suy
  5. 执行pacman -S mingw-w64-i686-gtk3 mingw-w64-i686-python3-gobject
  6. 要测试 GTK 3 是否正常工作,您可以 运行 gtk3-demo
  7. 将您创建的 hello.py 脚本复制到 C:\msys64\home\<username>
  8. 在 mingw32 终端执行 python3 hello.py - 应该会出现 window。

对于 ubuntu / Debian

安装系统提供的PyGObject:

  1. 打开一个终端
  2. 执行sudo apt install python3-gi python3-gi-cairo gir1.2-gtk-3.0
  3. 将目录更改为可以找到 hello.py 脚本的目录(例如 cd Desktop
  4. 运行 python3 hello.py

使用 pip 从 PyPI 安装:

  1. 打开一个终端并进入你的虚拟环境
  2. 执行
    sudo apt install libgirepository1.0-dev gcc libcairo2-dev pkg-config python3-dev gir1.2-gtk-3.0
  3. 执行pip3 install pycairo构建并安装Pycairo
  4. 执行pip3 install PyGObject构建并安装PyGObject
  5. 将工作目录更改为 hello.py 脚本所在的目录
  6. 运行 python3 hello.py

你可以阅读更多here

我将添加我一直在使用的内容,以使其在各种项目中无缝运行。

它使用 GNU Make,通过提供一个 venv 目标,可以用作其他目标的依赖项,以确保正确创建虚拟环境。

venv 目标本身依赖于一个(虽然是可配置的)requirements.txt;标准 python 需求文件。

包含一个目标 test 作为如何使用它的示例。

诀窍是创建一个符号链接到已安装的系统包。 ln -s ${DIST_PACKAGES}/gi ${VENV_NAME}/lib/python${PYTHON_VER}/site-packages/gi,其中 $DIST_PACKAGE 是系统上 python 个已安装库的位置。

对于那些不熟悉 make 的人。在项目的根目录中创建一个名为 Makefile 的文件,复制以下内容,然后发出命令 make configure && make venv.

生成文件

# directory to store virtual environment
VENV_NAME=venv

# python runtime version
PYTHON_VER=3.6

# python executble
PYTHON=${VENV_NAME}/bin/python${PYTHON_VER}

# python local libraries location
DIST_PACKAGES=/usr/lib/python3/dist-packages

# pip requirements file
REQUIREMENTS=requirements.txt

configure:      ## Install required debian packages.
    sudo apt-get -y install python${PYTHON_VER} python3-pip libgirepository1.0-dev
    python3 -m pip install virtualenv pygobject
    make venv

venv:           ## Recreates the virtual environment if needed.
venv: $(VENV_NAME)/bin/activate
$(VENV_NAME)/bin/activate: ${REQUIREMENTS}
    test -d $(VENV_NAME) || virtualenv -p python${PYTHON_VER} $(VENV_NAME)
    ${PYTHON} -m pip install -U pip
    ${PYTHON} -m pip install -r ${REQUIREMENTS}
    ln -s ${DIST_PACKAGES}/gi ${VENV_NAME}/lib/python${PYTHON_VER}/site-packages/gi
    touch $@

test:           ## Runs the test suite.
test: venv
    $(PYTHON) -m pytest tests