簡體   English   中英

pip freeze> requirements.txt包括virtualenv中所有系統安裝的軟件包

[英]pip freeze > requirements.txt including all system installed packages inside virtualenv

有點背景故事,我對Python和開發一般都比較陌生,並且愚蠢地將項目特定的軟件包安裝為系統軟件包。 現在,在virtualenvs內部嘗試為特定項目創建requirements.txt文件時,這會引起我的問​​題。

例如,我已經安裝了Kivy系統,每次我創建一個帶有需求文件的新環境時我都會得到以下內容(是的,env是活動的):

$ pip freeze > requirements.txt
$ cat requirements.txt
Kivy==1.9.1
Pillow==2.6.1
Pygments==2.0.1
chardet==2.3.0
colorama==0.3.2
docutils==0.12
html5lib==0.999
kazam==1.4.5
pygobject==3.14.0
python-apt==0.9.3.12
python-debian==0.1.27
pyxdg==0.25
requests==2.4.3
roman==2.0.0
six==1.8.0
urllib3==1.9.1
wheel==0.24.0

我還嘗試卸載Kivy,其中包括(試圖在這里謹慎,不想刪除重要的操作系統包),但得到以下輸出:

$ pip uninstall kivy 
Not uninstalling Kivy at /usr/lib/python3/dist-packages, owned by OS

所以我的問題是這樣的:我如何將我的python包恢復到默認狀態,只安裝了必要的系統包(幾乎就像一個新的python安裝),那么如何防止virtualenv中的requirements.txt文件包括系統廣泛安裝的軟件包(我將來會更好地使用evn,所以不應該有太多系統范圍的軟件包)

我也有興趣找出為什么pip unistall kivy不起作用(是的,我也試過以root身份運行它)

運行Debian 8,如果這有任何區別

希望這是有道理的,並感謝您的任何建議。

編輯:所以我認為我做錯了這一切,一旦我創建了env我一直在使用pip install而不是env/bin/pip install 除非我弄錯了,否則這就是全球安裝軟件包的原因。 需求文件也是如此。

您可以使用-l (或--local )參數凍結每個virtualenv中的本地包

pip freeze --local > requirements.txt 

暫無
暫無

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

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