首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用nix-shell启用可选的构建依赖关系?

如何使用nix-shell启用可选的构建依赖关系?
EN

Stack Overflow用户
提问于 2017-03-09 20:11:28
回答 1查看 807关注 0票数 1

我想在nix-shell中使用支持gtk的opencv和python3。

我可以使用以下命令启动未启用gtk的python3/opencv环境:

代码语言:javascript
复制
nix-shell --pure -p python35Packages.opencv3

但是,打开窗口的命令会失败:

代码语言:javascript
复制
[nix-shell:~/src/nixpkgs/pkgs/development/libraries/opencv]$ python
Python 3.5.3 (default, Jan 17 2017, 07:57:56) 
[GCC 5.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
>>> cv2.namedWindow("foo") 
OpenCV Error: Unspecified error (The function is not implemented. Rebuild the library with Windows, GTK+ 2.x or Carbon support. If you are on Ubuntu or Debian, install libgtk2.0-dev and pkg-config, then re-run cmake or configure script) in cvNamedWindow, file /tmp/nix-build-opencv-3.2.0.drv-0/opencv-3.2.0-src/modules/highgui/src/window.cpp, line 565

/nixpkgs/pkgs/development/libraries/opencv/3.x.nix的包定义中,有函数参数enableGtk2enableGtk3,它们在构建中打开可选依赖项。

我通读了几个nix教程和该语言的整个语法定义。

打开一个可选的依赖项是非常基本的,所以我希望它可以使用命令行工具来实现,比如nix-shell。有人知道这是怎么做的吗?

EN

回答 1

Stack Overflow用户

发布于 2017-03-10 18:42:15

在这种情况下,您需要使用以下命令:

代码语言:javascript
复制
nix-shell -p "python35Packages.opencv3.override { enableGtk2 = true; }"

另一种解决方案是一劳永逸地覆盖nixpkgs documentation中解释的python35Packages.opencv3包。这样你就可以原封不动地使用你的命令了。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42695085

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档