我想使用virtualenv的默认(没有站点包)。
但有些模块很难安装在virtualenv中(例如gtk)。 “困难”我的意思是你需要安装很多c-header文件,需要编译很多东西。
我知道我可以通过不使用pip安装这些软件包来解决这个问题,但是要创建符号链接以使全局site-packages目录中的某些模块可用。
但这是正确的方向吗?
有没有办法用pip或virtualenv创建符号链接?
2013年,我想要一些像psycopg2,gtk,python-ldap等模块,这些模块通过virtualenv中的rpm / dpkg安装在我的linux服务器上。
符号链接或其他解决办法确实使事情变得更复杂,而不是更简单。我们今天(2017年)使用此选项
- 系统站点包
让虚拟环境访问全局 站点包。
答案 0 :(得分:0)
我会说,是的,这是正确的方向。
您的问题与我处理的问题听起来类似:将OpenCV安装到virtualenv中。我的问题是OpenCV不能通过pip(Python Package Index)获得。我最终做的是查询相关模块的系统范围的全局Python安装,然后将.so复制到我的virtualenv中。
整个过程,包括我使用的样板文件Makefile,都在这里捕获:https://stackoverflow.com/a/19213369/1510289
你可以通过sym-linking而不是复制来做类似的事情。我最终复制库的原因是因为我使用Make,而Make不会以我需要的方式处理符号链接的依赖关系(如上面的URL所述。)
希望这会有所帮助......
答案 1 :(得分:0)
你是如何从头开始编译这些'硬'包的? 你在做类似的事情吗?
python setup.py install
如果是,请将其替换为:
python setup.py bdist_wheel
然后在./dist
目录中查找.whl
文件。然后拿走那个文件,并做(激活环境后)
pip install `./dist/whateverTheFileIsCalled.whl`