2015-12-09 44 views
2

我已在我的Ubuntu15.10x64機器上安裝了Caffe,使用protobuf 2.6.1。另外,截至今天,我安裝了TensorFlow virtualenv,但TensorFlow需要protobuf 3.0。從我讀過的內容來看,virtualenv支持爲python項目使用不同的庫。我可以在(tensorflow)virtualenv中安全地使用pip install --upgrade protobuf,而不會中斷我的Caffe安裝 - 因此在我的virtualenv中默認使用protobuf 2.6,在我的virtualenv中使用protobuf 3.0Caffe和TensorFlow Protobuf - 保持不同的版本

或者是使用Docker安裝或在虛擬機中創建克隆的唯一解決方案?總比沒有好,但我想用我的GPU和全功率。

感謝您的幫助和澄清。

編輯:

所以,這是當我嘗試更新的protobuf會發生什麼 - >

(tensorflow)[email protected]:~$ pip install --upgrade protobuf 
Requirement already up-to-date: protobuf in /usr/local/lib/python2.7/dist-packages 
Requirement already up-to-date: setuptools in ./tensorflow/lib/python2.7/site-packages (from protobuf) 
Cleaning up... 

如果我檢查版本這是它返回 - >

(tensorflow)[email protected]:~$ pip show protobuf 
--- 
Name: protobuf 
Version: 2.6.1 
Location: /usr/local/lib/python2.7/dist-packages 
Requires: setuptools 
(tensorflow)[email protected]:~$ pip -V 
pip 1.5.6 from /home/peter/tensorflow/local/lib/python2.7/site-packages (python 2.7) 

我必須手動更新protobuf嗎?我推測我會在./tensorflow/lib/python2.7/dist-packages內創建一個protobuf文件夾,其中包含我需要的版本?

回答

1

請注意,您的virtualenv不會從外部看到軟件包,因此即使您已在系統中全局安裝它(或在Caffe的virtualenv中,具體取決於您的設置),也不應該在virtualenv中顯示protobuf )。

在TensorFlow的virtualenv中運行pip install protobuf應該是安全的,它不會中斷您的全局設置或任何其他virtualenv。

+0

請注意,protobuf-python喜歡使用protobuf-C++作爲C擴展。 virtualenv實際上將這種情況給包裝了嗎?我對virtualenv瞭解不多,但它會讓我感到驚訝。 –

+0

'(tensorflow)peter @ UNIGMA:〜$ pip install - 升級protobuf 需求已經更新:/usr/local/lib/python2.7/dist-packages 0128中的protobuf需求已經更新:setuptools in ./tensorflow/lib/python2.7/site-packages(from protobuf) 正在清理......' 如果我看到這個權利,它似乎會引用我的本地protobuf。 –