有点背景故事,我对Python和开发相对较新,并且愚蠢地将项目特定的软件包安装为系统软件包。在virtualenvs内部尝试为特定项目创建requirements.txt文件时,这会引起我的问题。
例如,我已经在系统范围内安装了Kivy,每次我创建一个带有需求文件的新env时,我都会得到以下内容(是的,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文件,包括系统范围内安装的包(I&#) 39;将来会更好地使用evn,所以不应该有太多系统范围的包装)
我也有兴趣了解为什么pip unistall kivy
无法正常工作(是的,我已经尝试过以root身份运行)
运行Debian 8,如果这有任何区别
希望这是有道理的,并感谢您的任何建议。
编辑:所以我认为我做错了这件事,一旦我创建了env,我就一直在使用pip install
而不是env/bin/pip install
。除非我弄错了,否则这就是全球安装软件包的原因。需求文件也是如此。