簡體   English   中英

Virtualenv下的結構:如何獲取系統的Python庫路徑(不是virtualenv Python的庫路徑)

[英]Fabric under Virtualenv: How to obtain the system's Python library path (not the library path of the virtualenv Python)

我開始使用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通過將HTML和CSS內容簡單地傳遞給構造函數並調用render方法來生成PDF。 這種靈活性非常好,因為a現在可以將PDF布局用於具有CSS知識的設計人員,並且WeasyPrint致力於CSS3兼容性。

而且要權衡的是,它取決於某些無法通過Pip安裝的庫(特別是Pango,GdkPixbuf和Cairo)。 因此,我現在的解決方案是在系統范圍內安裝它們,並將它們符號鏈接到項目的virtualenv。

我不太喜歡使用virtualenv的--system-site-packages選項的想法,但是我想聽聽為什么它比我的符號鏈接想法更好。

只需運行Fabric Shell腳本命令任務來詢問操作系統的python:

/usr/bin/python -c 'from distutils.sysconfig import get_python_lib;print get_python_lib()'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM