我想使用 virtualenv 的默认(无站点包)。
但是有些模块很难安装在 virtualenv 中(例如 gtk)。 “困难”是指您需要安装大量 c 头文件并且需要编译大量内容。
我知道我可以通过不使用 pip 安装这些包来解决这个问题,而是创建符号链接(symbolic link)以使某些模块从全局站点包目录可用。
但这是正确的方向吗?
有没有办法用 pip 或 virtualenv 创建符号链接(symbolic link)?
更新
在 2013 年,我想要一些模块,如 psycopg2、gtk、python-ldap 等,它们通过 virtualenv 中的 rpm/dpkg 安装在我的 linux 服务器上。
符号链接(symbolic link)或其他解决方法确实使事情变得更复杂,而不是更简单。我们今天(2017 年)使用此选项
--system-site-packages
Give the virtual environment access to the global site-packages.
最佳答案
我会说是的,这是正确的方向。
您的问题听起来与我处理的问题类似:将 OpenCV 安装到 virtualenv 中。我的问题是 OpenCV 无法通过 pip(Python 包索引)获得。我最终做的是查询系统范围内的全局 Python 安装以查找有问题的模块,然后将 .so 复制到我的 virtualenv 中。
整个过程,包括我使用的样板 Makefile,都在此处捕获:https://stackoverflow.com/a/19213369/1510289
您可以通过符号链接(symbolic link)而不是复制来做类似的事情。我最终复制库的原因是因为我使用 Make,而 Make 没有以我需要的方式处理符号链接(symbolic link)的依赖关系(如上面的 URL 中所述。)
希望这有助于...
关于python - 使来自全局站点包的一些模块在 virtualenv 中可用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19228198/