簡體   English   中英

處理python virtualenv中的幾個軟件包版本

[英]Deal with several package versions in python virtualenv

我正在使用沒有root特權的計算服務器,因此為了能夠安裝所需的任何庫,我為python 2.6創建了帶有--system-site-packagesvirtualenv

然后,在虛擬環境中,我安裝了numpy版本1.8.2,因為系統numpy版本(1.3.0)對於我的要求而言太舊了:

numpy-1.3.0-主動開發(/usr/lib64/python2.6/site-packages)

numpy-1.8.2-無效

我需要--system-site-packages選項,因為我正在使用某些無法在虛擬環境中安裝的系統庫。 但是,我無法告訴虛擬環境使用numpy的最新版本。

有誰知道如何在虛擬環境中選擇版本1.8.2? 我嘗試使用pkg_resources.require('numpy==1.8.2')但出現錯誤:

pkg_resources.VersionConflict: (numpy 1.3.0 (/usr/lib64/python2.6/site-packages), Requirement.parse('numpy==1.8.2'))

在查看系統的/usr/lib64/python2.6/site-packages文件夾之前,是否可以通過某種方法告訴虛擬環境在虛擬virt2/lib64/python2.6/site-packages文件夾中查找庫?

您可能已被問題461咬傷,並且當前(截至2014年8月)您不能升級任何系統繼承的程序包,因為virtualenv的路徑是在sys.path任何系統路徑之后排序的。

您的解決方法是將(通常)最后一個sys-path條目移至上方一個位置:

  • 例如,假設您的virtualenv site-packages的索引是最后一個,則用python代碼重新排序sys.path ,您必須確保以下代碼在任何其他代碼之前運行:

     import sys; sys.path.insert(0, sys.path.pop(-1)) 
  • 在執行python解釋器之前,類似地修改您的PYTHONPATH環境變量(請參閱問題#10738919和)。

暫無
暫無

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

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