我开始使用Fabric作为Python项目的简单部署工具,但是有一个任务需要知道系统Python库的路径在哪里,以便正确地设置一些包符号链接。在
所以问题是:在我的fabfile中,如何获得系统Python路径?例如,以下Python代码返回正确的库路径:
# Without virtualenv activated
>>> from distutils.sysconfig import get_python_lib;
>>> print get_python_lib()
'/usr/lib/python2.7/dist-packages'
# With virtualenv activated
>>> from distutils.sysconfig import get_python_lib;
>>> print get_python_lib()
'/home/mandx/dev/my_project/env/lib/python2.7/site-packages'
在我的例子中,当在Fabric中运行任务时(并且在virtualenv处于活动状态时),我需要同时了解这两个方面。在
我将解释我的需要:我想使用WeasyPrint来生成PDF,只需将HTML和CSS内容传递给构造函数并调用一个呈现方法。这种灵活性很好,因为a现在可以利用PDF布局给具有CSS知识的设计师,而WeasyPrint则致力于CSS3的兼容性。在
取舍是它依赖于一些不能用Pip安装的库(特别是Pango、GdkPixbuf和Cairo)。因此,我现在的解决方案是在系统范围内安装这些软件,并将它们符号链接到项目的virtualenv。在
我不太喜欢使用virtualenv的--system-site-packages
选项,但我想听听为什么它会比我的符号链接更好。在
只需运行一个fabric shell脚本命令任务来询问操作系统的python:
相关问题 更多 >
编程相关推荐