python - 使来自全局站点包的一些模块在 virtualenv 中可用

标签 python virtualenv

我想使用 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/

相关文章:

python - 除了使用 Jython 之外,在 Hive UDF 中使用 Python 最简单的方法是什么?

java - AWS Lambda 环境中 javac、jar 等二进制文件位于哪个路径?

python - 为什么我找不到 lsvirtualenv 命令?

Python 虚拟环境困惑

python - 我可以将我的 sqlite 连接和游标放在一个函数中吗?

python - 根据最大值的长度从 python 嵌套字典中查找项目?

python - 如何在 "Check iO"游戏中使用 tests.py 文件在本地测试代码

python - OSError : locale. 错误 - 不支持的区域设置

python - 我应该为每个项目创建一个虚拟环境吗?

python - nodeenv -p 在 vi​​rtualenv 中不起作用