所以我有一個名爲venv的virtualenv文件夾用於我的python項目。如何導入一個全球安裝的軟件包到virtualenv文件夾
我可以運行:
venv/bin/pip install -r requirements.txt
它安裝我需要的除了一個,M2Crypto項目中的所有需求。安裝它的唯一方法是通過apt-get的:
apt-get install python-m2crypto
我怎樣才能再加入這個包通過易於安裝到VENV文件夾?
所以我有一個名爲venv的virtualenv文件夾用於我的python項目。如何導入一個全球安裝的軟件包到virtualenv文件夾
我可以運行:
venv/bin/pip install -r requirements.txt
它安裝我需要的除了一個,M2Crypto項目中的所有需求。安裝它的唯一方法是通過apt-get的:
apt-get install python-m2crypto
我怎樣才能再加入這個包通過易於安裝到VENV文件夾?
我所做的畢竟:
cp -R /usr/lib/python2.7/dist-packages/M2Crypto /home/richard/hello-project/venv/lib/python2.7/site-packages/
cp -R /usr/lib/python2.7/dist-packages/OpenSSL /home/richard/hello-project/venv/lib/python2.7/site-packages/
venv/bin/pip install -I M2Crypto
的-I
迫使它也可以安裝到virtualenv中,即使它已經在全球安裝。
--system-site-packages
允許訪問虛擬環境的全局站點包模塊。
你可以這樣做:
$ sudo apt-get install python-m2crypto
$ virtualenv env --system-site-packages
...然後你就會有你的virtualenv中獲取m2crypto
(與所有其他系統範圍內安裝軟件包)。
只要你小心只安裝你想要全局共享的包到基本的python安裝中,這就是要走的路。 –
但是,如果可以訪問全球站點包,那麼使用虛擬環境有什麼意義? –
Richard Knop,這樣你就可以在你自己的virtualenv中沒有root的情況下安裝額外的軟件包,而不會弄亂系統python。 –
toggleglobalsitepackages
將切換接入系統範圍site-packages
。
注意:你需要pip install virtualenvwrapper
才能得到這個命令;香草virtualenv
不包括它。通過virtualenvwrapper
,您還可以獲得非常有用的mkvirtualenv
和rmvirtualenv
命令等等。
。否則你會得到'toggleglobalsitepackages:command not found' – szeitlin
好點補充說。謝謝! – Will
截至今天,它現在是'toggleglobalsitepackages' – eduncan911
我會試試看。爲什麼沒有記錄在pip --help的輸出中。 –
它在'pip help install'中有記錄。 '-I'標誌特定於'install'命令,因此不在全局標誌列表中顯示(還有許多其他特定於命令的標誌)。 – Amber
謝謝。這不是很好。你會發現,M2Crypto實際上可以通過pip來安裝,但是庫中存在一個bug,使得Ubuntu 12.04 LTS的安裝失敗。他們發佈了一個補丁,但它不適合我...所以當我嘗試你的命令時,它會嘗試從pip存儲庫下載庫並安裝它,而不是僅僅複製apt包。 –