从virtualenv中提供的全球网站包中制作一些模块

时间:2013-10-07 15:01:12

标签: python virtualenv

我想使用virtualenv的默认(没有站点包)。

但有些模块很难安装在virtualenv中(例如gtk)。 “困难”我的意思是你需要安装很多c-header文件,需要编译很多东西。

我知道我可以通过不使用pip安装这些软件包来解决这个问题,但是要创建符号链接以使全局site-packages目录中的某些模块可用。

但这是正确的方向吗?

有没有办法用pip或virtualenv创建符号链接?

更新

2013年,我想要一些像psycopg2,gtk,python-ldap等模块,这些模块通过virtualenv中的rpm / dpkg安装在我的linux服务器上。

符号链接或其他解决办法确实使事情变得更复杂,而不是更简单。我们今天(2017年)使用此选项

  

- 系统站点包

     

让虚拟环境访问全局      站点包。

2 个答案:

答案 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`